13、14、19、20、21没过,hack过了
#include<bits/stdc++.h>
using namespace std;
bool c,c1,c2;
char b[5];
int a[6],n,s,t;
string ad[1001],op[1001];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>op[i]>>ad[i];
memset(a,-1,sizeof(a));
memset(b,' ',sizeof(b));
c=0;
s=0;
t=1;
for(int j=0;j<ad[i].size();j++){
if(ad[i][j]=='.'||ad[i][j]==':'){
if(s==4){
c=1;
break;
}
b[++s]=ad[i][j];
}
}
for(int j=1;j<=3;j++){
if(b[j]!='.'){
c=1;
break;
}
}
if(b[4]!=':')c=1;
for(int j=0;j<ad[i].size();j++){
if(t>5){
c=1;
break;
}
if(ad[i][j]>='0'&&ad[i][j]<='9'){
if(a[t]==-1)a[t]=ad[i][j]-48;
else if(a[t]>0)a[t]=a[t]*10+ad[i][j]-48;
else if(a[t]==0){
c=1;
break;
}
}else t++;
}
for(int j=1;j<=4;j++){
if(a[j]<0||a[j]>255){
c=1;
break;
}
}
if(a[5]<0||a[5]>65535)c=1;
if(c){
cout<<"ERR"<<endl;
continue;
}
if(op[i]=="Server"){
c1=0;
for(int j=1;j<i;j++){
if(ad[i]==ad[j]&&op[j]=="Server"){
cout<<"FAIL";
c1=1;
break;
}
}
if(!c1)cout<<"OK";
}else{
c2=0;
for(int j=1;j<i;j++){
if(ad[i]==ad[j]&&op[j]=="Server"){
cout<<j;
c2=1;
break;
}
}
if(!c2)cout<<"FAIL";
}
cout<<endl;
}
return 0;
}