65分,求助!
查看原帖
65分,求助!
1059074
xxgirlxx楼主2023/12/5 17:38

别人都是判少了,就我是判多了是吧。

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
struct v{ 
	bool right;
	string name,place;
}a[1000000]; 
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		a[i].right=true;
		char s[1000000];
		cin>>a[i].name;
		gets(s);
		int o=0,p=0,r=0,ans=0;
		string t;
		for(int j=1;j<strlen(s);j++){
			t+=s[j];
			if(s[j]=='.'){
				o++;
				if(s[j+1]=='.'||s[j+1]==':'){
					a[i].right=false;
					break;
				}
				if(o>3){
					a[i].right=false;
					break;
				}
				ans++;
				if(ans>=1&&ans<=4){
					if(r<0||r>255){
						a[i].right=false;
						break;
					}
				}
				r=0;
				if(s[j+1]=='0'&&s[j+2]<='9'&&s[j+2]>='0'){
					a[i].right=false;
					break;
				}
			}
			else if(s[j]==':'){
				p++;
				if(s[j+1]=='.'||s[j+1]==':'){
					a[i].right=false;
					break;
				}
				if(o!=3){
					a[i].right==false;
					break;
				}
				if(p>1){
					a[i].right=false;
					break;
				}
				ans++;
				if(ans>=1&&ans<=4){
					if(r<0||r>255){
						a[i].right=false;
						break;
					}
				}
				r=0;
				if(s[j+1]=='0'&&s[j+2]<='9'&&s[j+2]>='0'){
					a[i].right=false;
					break;
				}
			}
			else if(s[j]<='9'&&s[j]>='0'){
				r*=10;
				r+=s[j]-'0';
			}
			else{
				a[i].right=false;
				break;
			}
		}
		if(a[i].right==false)continue;
		a[i].place=t;
		if(r<0||r>65535||ans<4||o<3||p<1||s[strlen(s)-1]=='.'||s[strlen(s)-1]==':')a[i].right=false;
		else a[i].right=true;
	}
	for(int i=1;i<=n;i++){
		if(a[i].right==false){
			cout<<"ERR"<<endl;
			continue;
		}
		if(a[i].name=="Server"){
			int o=0;
			for(int j=1;j<i;j++){
				if(a[j].name=="Server"&&a[j].right==true&&a[i].place==a[j].place){
					o=j;
					break;
				}
			}
			if(o==0)cout<<"OK"<<endl;
			else cout<<"FAIL"<<endl;
		}
		if(a[i].name=="Client"){
			int o=0;
			for(int j=1;j<i;j++){
				if(a[j].name=="Server"&&a[j].right==true&&a[i].place==a[j].place){
					o=j;
					break;
				}
			}
			if(o!=0)cout<<o<<endl;
			else cout<<"FAIL"<<endl;
		}
	}
	return 0;
}
2023/12/5 17:38
加载中...