#include<bits/stdc++.h>
using namespace std;
string op,s;
map<string,int>m;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>op>>s;
if(op[0]=='S')
{
if(m[s]>0)cout<<"FAIL"<<endl;
else
{
int k=0,a=0,b=0;
long long num;
bool flag=0;
//check if symbol is wrong
for(int j=0;j<s.length();j++)
{
if(s[j]=='.')
{
a++;
if(a>3||b>0)
{
flag=1;
break;
}
}
else if(s[j]==':')
{
b++;
if(a<3||b>1)
{
flag=1;
break;
}
}
else if(s[j]<'0'||s[j]>'9')
{
flag=1;
break;
}
}
if(flag||a<3||b<1)
{
cout<<"ERR"<<endl;
continue;
}
//check if number is wrong
for(int j=1;j<=5;j++)
{
num=-1;
bool flagg=0;
while(s[k]>='0'&&s[k]<='9')
{
if((k==0||s[k-1]<'0'||s[k-1]>'9')&&(s[k]<'1'||s[k]>'9')&&s[k+1]>='0'&&s[k+1]<='9')
{
flagg=1;
break;
}
if(num==-1)num=0;
num=num*10+s[k]-'0';
if(j<=4)
{
if(num>255)
{
flag=1;
break;
}
}
else
{
if(num>65535)
{
flag=1;
break;
}
}
k++;
}
if(flagg||num==-1)
{
flag=1;
break;
}
k++;
}
if(flag)cout<<"ERR"<<endl;
else
{
cout<<"OK"<<endl;
m[s]=i;
}
}
}
else
{
if(m[s]>0)cout<<m[s]<<endl;
else
{
int k=0,a=0,b=0;
long long num;
bool flag=0;
//check if symbol is wrong
for(int j=0;j<s.length();j++)
{
if(s[j]=='.')
{
a++;
if(a>3||b>0)
{
flag=1;
break;
}
}
else if(s[j]==':')
{
b++;
if(a<3||b>1)
{
flag=1;
break;
}
}
else if(s[j]<'0'||s[j]>'9')
{
flag=1;
break;
}
}
if(flag||a<3||b<1)
{
cout<<"ERR"<<endl;
continue;
}
//check if number is wrong
for(int j=1;j<=5;j++)
{
num=-1;
bool flagg=0;
while(s[k]>='0'&&s[k]<='9')
{
if((k==0||s[k-1]<'0'||s[k-1]>'9')&&(s[k]<'1'||s[k]>'9')&&s[k+1]>='0'&&s[k+1]<='9')
{
cout<<"ERR"<<endl;
flagg=1;
break;
}
if(num==-1)num=0;
num=num*10+s[k]-'0';
if(j<=4)
{
if(num>255)
{
flag=1;
break;
}
}
else
{
if(num>65535)
{
flag=1;
break;
}
}
k++;
}
if(flagg||num==-1)
{
flag=1;
break;
}
k++;
}
if(flag)cout<<"ERR"<<endl;
else cout<<"FAIL"<<endl;
}
}
}
return 0;
}
P7911 [CSP-J 2021] 网络连接
WA记录
急求hack orz