求助,具体思路参照第二篇题解

P7911 [CSP-J 2021] 网络连接

@[w_god](/user/1054475) 改好了! ```cpp #include<bits/stdc++.h> using namespace std; map<string,int> mp; int check(char p[]){ int a=-1,b=-1,c=-1,d=-1,e=-1; int n=sscanf(p,"%d.%d.%d.%d:%d",&a,&b,&c,&d,&e); if(n!=5)return 0; if(a<0||a>255||b<0||b>255||c<0||c>255||d<0||d>255||e<0||e>65535) return 0; char pp[105]; sprintf(pp,"%d.%d.%d.%d:%d",a,b,c,d,e); if(strcmp(p,pp)==0)return 1; return 0; } signed main(){ int n; cin>>n; for(int i=1;i<=n;i++){ char a[1005],b[1005]; cin>>a>>b; string s(b); if(a[0]=='S'){ if(!check(b)){ cout<<"ERR\n"; } else if(!mp.count(s)){ cout<<"OK\n"; mp[s]=i; } else{ cout<<"FAIL\n"; } } else{ if(!check(b)){ cout<<"ERR\n"; } else if(!mp.count(s)){ cout<<"FAIL\n"; } else{ cout<<mp[s]<<"\n"; } } } return 0; }
by I_AK_IOI_1114 @ 2024-05-09 16:47:01


|