#include<bits/stdc++.h>
using namespace std;
int n;
map<string,int>m;
bool check(string ad){
int sum=0,tmp=1,flag=0;
for(int i=0;i<ad.size();i++){
if(ad[i]>='0'&&ad[i]<='9'){
if(ad[i-1]=='.'||ad[i-1]==':'||i==0){
if(ad[i]=='0') flag=i;
}
if(flag){
if(flag==i-1&&ad[i]=='0') return 0;
}
sum=sum*10+(ad[i]-'0');
}else if(tmp==4){
if(ad[i]==':'){
if(!(ad[i-1]>='0'&&ad[i-1]<='9')) return 0;
if(sum<=255){
flag=0;
sum=0;
tmp++;
continue;
}else return 0;
}else return 0;
}else if(tmp<4){
if(ad[i]=='.'){
if(!(ad[i-1]>='0'&&ad[i-1]<='9')||i==0) return 0;
if(sum<=255){
flag=0;
sum=0;
tmp++;
continue;
}
else return 0;
}else return 0;
}else return 0;
}
if(sum<=65535) return 1;
return 0;
}
int main(){
freopen("P7911_13","r",stdin);
freopen("P7911_13","w",stdout);
cin>>n;
for(int i=1;i<=n;i++){
string op,ad;
cin>>op>>ad;
if(!check(ad)){
cout<<"ERR"<<endl;
continue;
}
if(op=="Server"){
if(m[ad]) cout<<"FAIL"<<endl;
else{
cout<<"OK"<<endl;
m[ad]=i;
}
}else{
if(!m[ad]) cout<<"FAIL"<<endl;
else cout<<m[ad]<<endl;
}
}
return 0;
}
我知道这个很难调,但希望有人帮,求求了