数据点13WA了
#include<bits/stdc++.h>
#include<string>
#include<vector>
using namespace std;
int n;
vector <string> a;
int f[1010];
bool check(string x){
int suml=0,sum2=0;
for(int i=0;i<x.size();i++){
if(x[i]=='.')suml++;
if(x[i]==':'&&suml!=3)return 0;
if(x[i]==':')sum2++;
}
if(suml!=3)return 0;
if(sum2!=1)return 0;
int l[6],r[6],cnt=0;
for(int i=0;i<x.size();i++){
if(x[i]>'9'||x[i]<'0'){continue;}
if(((x[i-1]<'0'||x[i-1]>'9')||i==0)&&(x[i]>='0'&&x[i]<='9')){
l[++cnt]=i;
}
if(((x[i+1]>'9'||x[i+1]<'0')||i==x.size())&&(x[i]>='0'&&x[i]<='9')){
r[cnt]=i;
}
}
int ans[6];
memset(ans,0,sizeof(ans));
long long tmp=1;
for(int i=1;i<=cnt;i++){
tmp=1;
for(int j=r[i];j>=l[i];j--){
ans[i]+=(x[j]-'0')*tmp;
tmp*=10;
if(x[j]=='0'&&j==l[i]&&l[i]!=r[i])return 0;
}
}
for(int i=1;i<=4;i++)
if(ans[i]>255||ans[i]<0)return 0;
if(ans[5]<0||ans[5]>65535)return 0;
return 1;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
string x,y;
cin>>x>>y;
if(check(y)){
if(x=="Server"){
bool flag=1;
for(int j=0;j<a.size();j++){
if(y==a[j]){flag=0;break;}
}
if(flag){
printf("OK\n");
a.push_back(y);
f[a.size()-1]=i;
}
else printf("FAIL\n");
}
if(x=="Client"){
bool flag=1;
for(int j=0;j<a.size();j++){
if(y==a[j]){
flag=0;
printf("%d\n",f[j]);
break;
}
}
if(flag)printf("FAIL\n");
}
}else{
printf("ERR\n");
}
}
return 0;
}