本地能运行,评测机CE(qwq).
#include<bits/stdc++.h>
using namespace std;
const int maxn=1001;
int _const;
struct Internet{
int a=-1,b=-1,c=-1,d=-1,e=-1;
};
struct company{
Internet Server;
Internet Client[maxn];
int pdf=0;
}work[maxn];
//Server.
int main(){
//freopen("network.in","r",stdin);
//freopen("network.out","w",stdout);
cin>>_const;
string s,ss,sss;
int n=0;
for(int ccf=1;ccf<=_const;ccf++){
cin>>ss;
if(ss=="Server"){
int error_S=0;
n++;
int aps=0,bps=0,cps=0,dps=0,eps=0;
for(int i=0;i<4;i++){
cin>>s[i];
if(s[i]=='.'){
for(int j=0;j<=i;j++){
work[n].Server.a+=(s[j]-48)*(10^(3-i));
}
if(work[n].Server.a==-1||work[n].Server.a>255){
aps=1;
break;
}
}
}
for(int i=0;i<4;i++){
cin>>s[i];
if(s[i]=='.'){
for(int j=0;j<=i;j++){
work[n].Server.b+=(s[j]-48)*(10^(3-i));
}
if(work[n].Server.b==-1||work[n].Server.b>255){
bps=1;
break;
}
}
}
for(int i=0;i<4;i++){
cin>>s[i];
if(s[i]=='.'){
for(int j=0;j<=i;j++){
work[n].Server.c+=(s[j]-48)*(10^(3-i));
}
if(work[n].Server.c==-1||work[n].Server.c>255){
cps=1;
break;
}
}
}
for(int i=0;i<4;i++){
cin>>s[i];
if(s[i]==':'){
for(int j=0;j<=i;j++){
work[n].Server.d+=(s[j]-48)*(10^(3-i));
}
if(work[n].Server.d==-1||work[n].Server.d>255){
dps=1;
break;
}
}
}
for(int i=0;i<6;i++){
cin>>s[i];
for(int j=0;j<=i;j++){
work[n].Server.e+=(s[j]-48)*(10^(5-i));
}
if(work[n].Server.e==-1||work[n].Server.e>65535){
eps=1;
break;
}
}
if(aps==1||bps==1||cps==1||dps==1||eps==1){
cout<<"ERR"<<endl;
error_S=1;
}
if(n>=2&&error_S==0){
for(int i=1;i<=n;i++){
if(work[n].Server.a==work[i].Server.a&&work[n].Server.b==work[i].Server.b&&work[n].Server.c==work[i].Server.c&&work[n].Server.d==work[i].Server.d&&work[n].Server.e==work[i].Server.e){
cout<<"FAIL"<<endl;
error_S=1;
}
}
}
if(error_S==0){
cout<<"OK"<<endl;
}
}
else{
int error_C=1;
work[n].pdf++;
int apc=0,bpc=0,cpc=0,dpc=0,epc=0;
for(int i=0;i<4;i++){
cin>>sss[i];
if(sss[i]=='.'){
for(int j=0;j<=i;j++){
work[n].Client[work[i].pdf].a+=(sss[j]-48)*(10^(3-i));
}
if(work[n].Client[work[i].pdf].a==-1||work[n].Client[work[i].pdf].a>255){
apc=1;
break;
}
}
}
for(int i=0;i<4;i++){
cin>>sss[i];
if(sss[i]=='.'){
for(int j=0;j<=i;j++){
work[n].Client[work[i].pdf].b+=(sss[j]-48)*(10^(3-i));
}
if(work[n].Client[work[i].pdf].b==-1||work[n].Client[work[i].pdf].b>255){
bpc=1;
break;
}
}
}
for(int i=0;i<4;i++){
cin>>sss[i];
if(sss[i]=='.'){
for(int j=0;j<=i;j++){
work[n].Client[work[i].pdf].c+=(sss[j]-48)*(10^(3-i));
}
if(work[n].Client[work[i].pdf].c==-1||work[n].Client[work[i].pdf].c>255){
cpc=1;
break;
}
}
}
for(int i=0;i<4;i++){
cin>>sss[i];
if(sss[i]==':'){
for(int j=0;j<=i;j++){
work[n].Client[work[i].pdf].d+=(sss[j]-48)*(10^(3-i));
}
if(work[n].Client[work[i].pdf].d==-1||work[n].Client[work[i].pdf].d>255){
dpc=1;
break;
}
}
}
for(int i=0;i<6;i++){
cin>>sss[i];
for(int j=0;j<=i;j++){
work[n].Client[work[i].pdf].e+=(sss[j]-48)*(10^(5-i));
}
if(work[n].Client[work[i].pdf].e==-1||work[n].Client[work[i].pdf].e>65535){
epc=1;
break;
}
}
if(apc==1||bpc==1||cpc==1||dpc==1||epc==1){
cout<<"ERR"<<endl;
error_C=0;
}
if(error_C==0){
for(int i=1;i<=n;i++){
if(work[n].Client[work[i].pdf].a==work[i].Server.a&&work[n].Client[work[i].pdf].b==work[i].Server.b&&work[n].Client[work[i].pdf].c==work[i].Server.c&&work[n].Client[work[i].pdf].d==work[i].Server.d&&work[n].Client[work[i].pdf].e==work[i].Server.e){
cout<<"OK"<<endl;
work[i].pdf++;
error_C=1;
}
}
}
if(error_C==0){
cout<<"FAIL"<<endl;
}
}
}
return 0;
}