#include <iostream>
#include <cstdio>
using namespace std;
long long ad[1005][10];
bool op[1005];
int find(int num)
{
int i;
for (i = 1; i < num; ++i)
{
if (!op[i] && ad[i][1] == ad[num][1])
{
if (ad[i][2] != ad[num][2]) continue;
if (ad[i][3] != ad[num][3]) continue;
if (ad[i][4] != ad[num][4]) continue;
if (ad[i][5] != ad[num][5]) continue;
return i;
}
}
return 0;
}
int main()
{
int n, i, j, k, cnt, temp;
string s;
cin >> n;
for (i = 1; i <= n; ++i)
{
cin >> s;
if (s == "Server") op[i] = 0;
else op[i] = 1;
cin >> s;
s += "-";
k = 1;
cnt = 0;
for (j = 0; j < s.size() - 1; ++j)
{
if (j && (s[j - 1] < '0' || s[j - 1] > '9') && s[j] == '0' && s[j + 1] >= '0' && s[j + 1] <= '9')
break;
if (s[j] < '0' || s[j] > '9')
{
if (k > 0 && k < 4 && s[j] == ':' || k == 4 && s[j] == '.')
break;
++k;
}
else ad[i][k] = ad[i][k] * 10 + s[j] - '0';
if (s[j] == '.' || s[j] == ':')
++cnt;
}
if (j < s.size() - 1 || cnt != 4 || ad[i][1] > 255 || ad[i][2] > 255 || ad[i][3] > 255 || ad[i][4] > 255 || ad[i][5] > 65535)
{
printf("ERR\n");
continue;
}
if (!op[i])
{
if (find(i))
printf("FAIL");
else printf("OK");
}
else
{
temp = find(i);
if (temp) printf("%d", temp);
else printf("FAIL");
}
printf("\n");
}
return 0;
}
各位大佬帮我看看哪错了,感激不尽!