大样例过了,65,求hack
查看原帖
大样例过了,65,求hack
384581
Meng142857楼主2021/11/6 18:31
#include<iostream>
#include<cstdio>
using namespace std;
struct computer{
	string typ,ip;
}cpt[1005];
int n;
bool flag;
bool legal(computer x){
	int cnt=1,sum=0;
	if(!(isdigit(x.ip[0])&&(isdigit(x.ip[x.ip.length()-1])))){return false;}
	for(int i=0;i<x.ip.length();i++){
		if(x.ip[i]=='0'&&((x.ip[i-1]=='.'||x.ip[i-1]==':')&&isdigit(x.ip[i+1]))){return false;}
		if(i!=0&&(!isdigit(x.ip[i]))&&(!isdigit(x.ip[i-1]))){return false;}
		if(x.ip[i]=='.'&&cnt<=3||x.ip[i]==':'&&cnt==4){
			cnt++;
			if(sum>=256){return false;}
			sum=0;
		}
		else if(isdigit(x.ip[i])){
			sum=sum*10+x.ip[i]-'0';
			if(sum>99999){return false;}
		}
		else{return false;}
	}
	if(sum<=65535&&cnt==5){return true;}
	else{return false;}
}
int main(){
	//freopen("network.in","r",stdin);
	//freopen("network.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>cpt[i].typ>>cpt[i].ip;
		//cout<<legal(cpt[i])<<endl;
		if(!legal(cpt[i])){cout<<"ERR"<<endl;continue;}
		if(cpt[i].typ=="Server"){
			flag=true;
			for(int j=1;j<i;j++){
				if(cpt[j].typ=="Server"&&cpt[i].ip==cpt[j].ip){
					cout<<"FAIL"<<endl;
					flag=false;
					break;
				}
			}
			if(flag){
				cout<<"OK"<<endl;
			}
		}
		if(cpt[i].typ=="Client"){
			flag=false;
			for(int j=1;j<i;j++){
				if(cpt[j].typ=="Server"&&cpt[i].ip==cpt[j].ip){
					cout<<j<<endl;
					flag=true;
					break;
				}
			}
			if(!flag){
				cout<<"FAIL"<<endl;
			}
		}
	}
	return 0;
} 
2021/11/6 18:31
加载中...