错T13、14、17、18、19、20、21
#include<bits/stdc++.h>
using namespace std;
map<string,int >mp;
int n;
void solve(string a,string s,int idx){
int cnt=0;
long long tmp=0;
for(int i=0;i<s.length();i++){
if(s[i]=='.'){
if(i==0){
cout<<"ERR"<<endl;
return;
}
if(s[i-1]=='.'||s[i-1]==':'){
cout<<"ERR"<<endl;
return;
}
if(tmp>255){
cout<<"ERR"<<endl;
return;
}
if(cnt>=3){
cout<<"ERR"<<endl;
return;
}
cnt++;tmp=0;
continue;
}
if(s[i]==':'){
if(i==0){
cout<<"ERR"<<endl;
return;
}
if(s[i-1]=='.'||s[i-1]==':'){
cout<<"ERR"<<endl;
return;
}
if(cnt!=3){
cout<<"ERR"<<endl;
return;
}
if(tmp>255){
cout<<"ERR"<<endl;
return;
}
tmp=0;
continue;
}
if((s[i]-'0'>10||s[i]-'0'<0)&&s[i]!='.'&&s[i]!=':'){
cout<<"ERR"<<endl;
return;
}
if(tmp==0&&s[i]-'0'==0&&s[i+1]!='.'&&s[i+1]!=':'){
cout<<"ERR"<<endl;
return;
}
if(tmp>65535){
cout<<"ERR"<<endl;
return;
}
tmp=tmp*10+s[i]-'0';
}
if(tmp>65535){
cout<<"ERR"<<endl;
return;
}
if(a[0]=='S'){
if(mp[s]){
cout<<"FAIL"<<endl;
}else{
mp[s]=idx;
cout<<"OK"<<endl;
}
}else{
if(mp[s]){
cout<<mp[s]<<endl;
}else{
cout<<"FAIL"<<endl;
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++){
string a,b;
cin>>a>>b;
solve(a,b,i);
}
return 0;
}
T13 本地测试能过