字面意思13 14 19 20 21紫 17 18红
#include<bits/stdc++.h>
using namespace std;
int f[100001][6];
int main()
{
int n,t=0,rp=0;
cin>>n;
while(n--)
{
rp++;
int a[6],m=0,k=0,i,j,kkk=0,k1=0,k2=0;
string s,b;
char c;
cin>>b>>s;
int x=0;
for(m=0;m<s.length();m++)
{
if(!((s[m]<='9'&&s[m]>='0')||s[m]=='.'||s[m]==':' ))
{
kkk=1;
}
}
for(m=0;m<s.length();m++)
{
if(s[m]>'9'||s[m]<'0')
{
k++;
a[k]=x;
x=0;
if(s[m]=='.') k1++;
if(s[m]==':')
{
if(k1!=3) kkk=1;
k2++;
}
if(k<=3&&s[m]!='.') kkk=1;
if(k==4&&s[m]!=':') kkk=1;
}
else
{
x*=10;
x+=s[m]-'0';
if(k<=3&&x>255)
{
kkk=1;
break;
}
if(k==4&&x>65535)
{
kkk=1;
break;
}
if(s[m]=='0'&&x==0&&s[m+1]!='.'&&s[m+1]!=':')
{
kkk=1;
break;
}
}
}
if(k1!=3||k2!=1) kkk=1;
k++;
a[k]=x;
int flag=-1;
// cout<<a[1]<<' '<<a[2]<<' '<<a[3]<<' '<<a[4]<<' '<<a[5]<<endl;
if(a[1]>255||a[2]>255||a[3]>255||a[4]>255||a[5]>65535||kkk!=0)
{
printf("ERR\n");
continue;
}
if(b[0]=='S')
{
for(i=1;i<=t;i++)
{
int y=0;
for(j=1;j<=5;j++)
{
if(a[j]==f[i][j]) y++;
}
if(y==5)
{
flag=0;
break;
}
}
if(flag==0)
{
printf("FAIL\n");
}
else
{
t++;
f[t][0]=rp;
f[t][1]=a[1];
f[t][2]=a[2];
f[t][3]=a[3];
f[t][4]=a[4];
f[t][5]=a[5];
printf("OK\n");
}
}
else
{
for(i=1;i<=t;i++)
{
int y=0;
for(j=1;j<=5;j++)
{
if(a[j]==f[i][j]) y++;
}
if(y==5)
{
flag=i;
break;
}
}
if(flag!=-1)
{
cout<<f[flag][0]<<endl;
}
else
{
printf("FAIL\n");
}
}
}
return 0;
}