AC
2025-07-08 22:49:45
发布于:广东
57阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
bool check(char s[]){
int a=-1,b=-1,c=-1,d=-1,e=-1;
int t=sscanf(s,"%d.%d.%d.%d:%d",&a,&b,&c,&d,&e);
if(t!=5) return 0;
if(a<0||a>255) return 0;
if(b<0||b>255) return 0;
if(c<0||c>255) return 0;
if(d<0||d>255) return 0;
if(e<0||e>65535) return 0;
char s2[50];
sprintf(s2,"%d.%d.%d.%d:%d",a,b,c,d,e);
int lens=strlen(s);
bool ok=0;
for(int i=0;i<lens;i++){
if(s[i]==s2[i]) ok=1;
else{
ok=0;
break;
}
}
return ok;
}
map<string,int> m;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
char opt[50],s[50];
cin>>opt>>s;
string t(s);
if(opt[0]=='S'){
if(!check(s)) cout<<"ERR"<<endl;
else if(m.count(t)!=0) cout<<"FAIL"<<endl;
else{
cout<<"OK"<<endl;
m[t]=i;
}
}else{
if(!check(s)) cout<<"ERR"<<endl;
else if(m.count(t)==0) cout<<"FAIL"<<endl;
else cout<<m[s]<<endl;
}
}
return 0;
}
这里空空如也
有帮助,赞一个