65WA求助
查看原帖
65WA求助
680048
kxr_楼主2024/8/16 22:52
#include<bits/stdc++.h>
using namespace std;
struct node{
	string s;
	int num;
}a[1001];
int main(){
	//freopen("P7911_13.in","r",stdin);
	//freopen("1.out","w",stdout);	
	int n;
	cin>>n;
	string x,y;
	int jishu=0;
	for(int i=1;i<=n;i++){
		cin>>x>>y;
		int flag1=0,flag2=0,sum1=0,sum2=0,sum0=0;
		int number=0;
		for(int j=0;j<y.length();j++){
			if(y[j]=='.'||y[j]==':'){
				int xyz=number;
				sum1++;
				if(number<0||number>255){
					flag2=1;
					break;
				}
				while(number!=0){
					if(number%10==0){
						sum0--;
					}
					number/=10;
				}
				if(sum0!=0&&xyz!=0){
					flag2=1;
					break;
				}
				sum0=0;
			}
			if(y[j]==':'){
				sum1--;
				sum2++;
				flag1=1;
			}
			if(y[j]>='0'&&y[j]<='9'){
				if(y[j]=='0'){
					sum0++;
				}
				number=number*10+y[j]-'0';
			}
		}
		int abc=number;
		while(number!=0){
			if(number%10==0){
				sum0--;
			}
			number/=10;
		}
		if(flag2==1||sum1!=3||sum2!=1||(sum0!=0&&abc!=0)||y[y.length()-1]>'9'||y[y.length()-1]<'0'||y[0]>'9'||y[0]<'0'){
			cout<<"ERR"<<endl;
			continue;
		}else{
			if(abc<0||abc>65535){
				cout<<"ERR"<<endl;
				continue;
			}
		}
		sum1=0;
		sum2=0;
		sum0=0;
		number=0;
		flag1=0;
		flag2=0;
		if(x=="Server"){
			for(int k=1;k<=jishu;k++){
				if(a[k].s==y){
					flag2=1;
					cout<<"FAIL"<<endl;
					break;
				}
			}
			if(flag2==0){
				jishu++;
				a[jishu].s=y;
				a[jishu].num=i;
				cout<<"OK"<<endl;
			}
		}else{
			for(int k=1;k<=jishu;k++){
				if(a[k].s==y){
					cout<<a[k].num<<endl;
					flag2=1;
					break;
				}
			}
			if(flag2==0){
				cout<<"FAIL"<<endl;
				continue;
			}
		}
	}
	return 0;
}
2024/8/16 22:52
加载中...