本蒟蒻不知是哪出了问题求大佬救命!
#include<bits/stdc++.h>
using namespace std;
int o,b,c,d,e,n,t,w;
string p,q,op[1001];
bool qp(string a){
int x=0,z=0,as=1;
for(int i=0;i<=a.length();i++){
if(a[i]=='.'&&i==0)return false;
if(a[i]==':'&&i==a.length())return false;
if((i==0||a[i-1]>'9'||a[i-1]<'0')&&a[i]=='0'&&(a[i+1]>='0'&&a[i+1]<='9'))return false;
if(a[i]=='.'&&a[i+1]=='.')return false;
if(a[i]=='.'&&a[i+1]==':')return false;
if(a[i]=='.')x++;
if(a[i]==':')z++;
if(x!=3&&z>0)return false;
if(x>3)return false;
if(z>1)return false;
}
if(x<3||z<1)return false;
for(int i=1;i<=a.length();i++){
if(a[i]=='.'||a[i]==':'){as++;continue;}
if(as==1)o=o*10+(a[i]-'0');
if(as==2)b=b*10+(a[i]-'0');
if(as==3)c=c*10+(a[i]-'0');
if(as==4)d=d*10+(a[i]-'0');
if(as==5)e=e*10+(a[i]-'0');
}
if(o>=256&&b>=256&&c>=256&&d>=256&&e>=65536)return true;
return true;
}
int as(string a){
for(int i=1;i<=w;i++)
if(op[i]==a)return i;
return 0;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>p>>q;
if(qp(q)){
if(p=="Server"){
if(as(q))cout<<"FAIL"<<endl;
else{op[++w]=q;cout<<"OK"<<"\n";}
}
else{
if(as(q))cout<<as(q)+t<<endl;
else cout<<"FAIL"<<endl;
}
}
else{if(p=="Server")t+=1;cout<<"ERR"<<endl;}
}
}