#include<bits/stdc++.h>
using namespace std;
map <string, int> M;
bool is_num(char c){
return c >= '0' && c <= '9';
}
bool ok(string str, string data){
return str[0] != '-' && (str.length() < data.length() || str <= data);
}
bool check(string str){
string nums[6];
char ch[5]; int len = 1, sl = str.length();
for(int i = 0; i < sl; i++)
if(!is_num(str[i]))
ch[len++] = str[i];
else nums[len] += str[i];
for(int i = 1; i <= 4; i++)
if(nums[i][0] == '0' && nums[i].length() != 1 || !ok(nums[i], "255") || ch[i] != (i != 4 ? '.' : ':'))
return 0;
return ok(nums[5], "65535");
}
int main(){
int n;
cin >> n;
for(int i = 1; i <= n; i++){
string a, str;
cin >> a >> str;
if(a == "Server"){
if(check (str)){
if(M[str])
cout << "FAIL\n";
else{
cout << "OK\n";
M[str] = i;
}
}
else cout << "ERR\n";
}
else {
if(check (str)){
if(M[str])
cout << M[str] << endl;
else cout << "FAIL\n";
}
else cout << "ERR\n";
}
}
return 0;
}
样例都过了,但是只过了一个点。