求调错
查看原帖
求调错
241838
microchip楼主2021/10/31 11:03

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;
}

2021/10/31 11:03
加载中...