15分,其他全WA,四个大样例都过了,查了半天没查出来
WA的地方似乎都是fail,ok,err之间的错误
#include<bits/stdc++.h>
using namespace std;
unsigned long long n,num,q,qd0,w,dh;
string k,s,cc[1050];
bool iee;
bool cz(string hh){
for(int i=0;i<w;i++){
if(cc[i]==hh)return 1;
}return 0;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++){
w++;
cin>>k>>s;
num=0;q=0;qd0=1;dh=0;iee=1;
if(k=="Server"){
for(int j=0;j<s.size();j++){
if(s[j]>='0'&&s[j]<='9'){
if(s[j]=='0'&&qd0){
if(j==0&&(s[j+1]!='.'||s[j+1]!=':')){
cout<<"ERR"<<endl;
iee=0;
break;
}qd0=0;
}
num*=10;
num+=s[j]-'0';
}else if(s[j]=='.'||s[j]==':'){
dh++;
if(s[j]==':'&&dh<=3){
cout<<"ERR"<<endl;
iee=0;
break;
}if(s[j]=='.'&&dh>3){
cout<<"ERR"<<endl;
iee=0;
break;
}
if(num>255){
cout<<"ERR"<<endl;
iee=0;
break;
}
num1[q++]=num;
qd0=1;
num=0;
}else{
cout<<"ERR"<<endl;
iee=0;
continue;
}
}
if(num>65565){
cout<<"ERR"<<endl;
iee=0;
continue;
}if(cz(s)){
cout<<"FAIL"<<endl;
}else if(iee){
cc[w]=s;
cout<<"OK"<<endl;
}
}if(k=="Client"){
for(int j=0;j<s.size();j++){
if(s[j]>='0'&&s[j]<='9'){
if(s[j]=='0'&&qd0){
if(j==0&&(s[j+1]!='.'||s[j+1]!=':')){
cout<<"ERR"<<endl;
iee=0;
break;
}qd0=0;
}
num*=10;
num+=s[j]-'0';
}else if(s[j]=='.'||s[j]==':'){
dh++;
if(s[j]==':'&&dh<=3){
cout<<"ERR"<<endl;
iee=0;
break;
}if(s[j]=='.'&&dh>3){
cout<<"ERR"<<endl;
iee=0;
break;
}
if(num>255){
cout<<"ERR"<<endl;
iee=0;
break;
}
if(num>255){
cout<<"ERR"<<endl;
iee=0;
break;
}qd0=1;
num=0;
}else{
cout<<"ERR"<<endl;
iee=0;
continue;
}
}if(num>65565){
cout<<"ERR"<<endl;
iee=0;
continue;
}bool f=1;
if(iee){
for(int j=0;j<w;j++)
if(cc[j]==s){
cout<<j<<endl;
f=0;
break;
}
if(f)cout<<"FAIL"<<endl;
}
}
}
return 0;
}