65pts求调

P7911 [CSP-J 2021] 网络连接

@[axlewu](/user/1049868) 我之前被坑过。 ```cpp Input: 1 Server 1.2.3.4: --------------- Output: ERR -------- Your Answer: OK ```
by wzj0829 @ 2024-04-12 20:43:34


@[wzj0829](/user/1028403) 不行,你的数据过了,还是65 ```cpp #include<bits/stdc++.h> using namespace std; typedef long long ll; set<string>st; map<string,ll>mp; int main(){ //freopen("network.in","r",stdin); //freopen("network.out","w",stdout); ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll n; cin>>n; for(ll i=1;i<=n;i++){ string a,b; cin>>a>>b; if(b[b.size()-1]==':'){ cout<<"ERR\n"; continue; } bool flag=0; if(a=="Server"){ ll t=0; ll x=0,y=0; for(auto it=b.begin();it!=b.end();++it){ if((*it)=='0'&&(*(it+1)!='.'&&*(it+1)!=':')&&(*(it-1)=='.'||*(it-1)==':')){ flag=1; break; } if((*it)=='.'||(*it)==':'){ if((*it)=='.'){ x++; }else{ y++; } if(t>=256){ flag=1; break; }else{ t=0; } }else{ t=t*10+(*it)-'0'; } } if(t>=65536){ flag=1; } if(x!=3||y!=1){ flag=1; } if(flag==1){ cout<<"ERR\n"; }else{ if((*st.find(b))==b){ cout<<"FAIL\n"; }else{ cout<<"OK\n"; st.insert(b); mp[b]=i; } } }else{ ll t=0; ll x=0,y=0; for(auto it=b.begin();it!=b.end();++it){ if((*it)=='0'&&(*(it+1)!='.'&&*(it+1)!=':')&&(*(it-1)=='.'||*(it-1)==':')){ flag=1; break; } if((*it)=='.'||(*it)==':'){ if((*it)=='.'){ x++; }else{ y++; } if(t>=256){ flag=1; break; }else{ t=0; } }else{ t=t*10+(*it)-'0'; } } if(t>=65534){ flag=1; } if(x!=3||y!=1){ flag=1; } if(flag==1){ cout<<"ERR\n"; }else{ if((*st.find(b))==b){ cout<<mp[b]<<"\n"; }else{ cout<<"FAIL\n"; } } } } return 0; } ```
by axlewu @ 2024-04-12 20:57:55


|