1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
#include<bits/stdc++.h>
using namespace std;
int n;
int a[101],nf,nk,b[101];
int vis[2001][101],vis1[2001][101],fuwu[2001];
bool check(int x,int y,int z,int k,int w,char a1,char a2,char a3,char a4){
if(a1=='.'&&a2=='.'&&a3=='.'&&a4==':'&&x>=0&&x<=255&&y>=0&&y<=255&&z>=0&&z<=255&&k>=0&&k<=255&&w>=0&&w<=65535){
return true;
}
return false;
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
memset(a,0,sizeof(a));
char t;
bool flag1=true;
while(1){
t=getchar();
if(t=='S'){
flag1=true;
break;
}
if(t=='C'){
flag1=false;
break;
}
}
bool flag2=false,flag3=false;
int x=0,cnt=0,cnt1=0;
while(1){
if(t=='\n'&&flag3==false){
flag3=true;
}
if(flag3==true&&t=='\n'){
break;
}
t=getchar();
if(t>='0'&&t<='9'){
flag2=true;
}
if(flag2){
if(t>='0'&&t<='9'){
x=x*10+(int)(t-'0');
}else{
b[++cnt1]=t;
flag2=false;
a[++cnt]=x;
x=0;
}
}
}
if(!check(a[1],a[2],a[3],a[4],a[5],b[1],b[2],b[3],b[4])){
printf("ERR\n");
}else{
if(flag1){
bool flag4=true;
for(int j=1;j<=nf;j++){
int sum=0;
for(int k=1;k<=5;k++){
if(vis[j][k]==a[k]){
sum++;
}
}
if(sum==5){
flag4=false;
break;
}
}
if(!flag4){
printf("FAIL\n");
}else{
printf("OK\n");
nf++;
for(int j=1;j<=5;j++){
vis[nf][j]=a[j];
}
}
}else{
bool flag4=true;
int tt;
for(int j=1;j<=nf;j++){
int sum=0;
for(int k=1;k<=5;k++){
if(vis[j][k]==a[k]){
sum++;
}
}
if(sum==5){
flag4=false;
tt=j;
break;
}
}
if(flag4){
printf("FAIL\n");
}else{
bool flag5=true;
int pp;
for(int j=1;j<=nk;j++){
int sum=0;
for(int k=1;k<=5;k++){
if(vis1[j][k]==a[k]){
sum++;
}
}
if(sum==5){
flag5=false;
pp=j;
break;
}
}
if(!flag5){
printf("%d\n",fuwu[pp]);
}else{
nk++;
fuwu[nk]=tt;
printf("%d\n",tt);
}
}
}
}
}
}
|