55pts,help me debug!
查看原帖
55pts,help me debug!
591681
Jadyn楼主2025/1/18 20:30
#include<bits/stdc++.h>
using namespace std;
int n,a,b,c,d,e,k=0,kk=0; 
struct data{
	int a,b,c,d,e,kg;
}dat[1010];
bool check(string s){
	int l=s.size(),f=1,sm=0,sd=0;
	for(int i=0;i<l;++i){
		if(s[i]=='.')++sd;
		if(s[i]==':')++sm;
		if(s[i]==':'&&sd!=3)return 0;
	}
	if(sd!=3||sm!=1)return 0;
	for(int i=0;i<l;++i){
		int x=0;
		if(s[i]>='0'&&s[i]<='9'){
			while(s[i]>='0'&&s[i]<='9'){
				x=x*10+s[i]-'0';
				++i;
			}
			if(f==1)a=x,++f;
			else if(f==2)b=x,++f;
			else if(f==3)c=x,++f;
			else if(f==4)d=x,++f;
			else if(f==5)e=x;
		}
	}
	if(a>255||b>255||c>255||d>255||a<0||b<0||c<0||d<0||e<0||e>65535)return 0;
	else return 1;
}
void Server(){
	++kk;
	for(int i=1;i<=k;++i){
		if(a==dat[i].a&&b==dat[i].b&&c==dat[i].c&&d==dat[i].d&&e==dat[i].e){
			cout<<"FAIL\n";
			return;
		}
	}
	cout<<"OK\n";
	++k;dat[k].a=a;dat[k].b=b;dat[k].c=c;dat[k].d=d;dat[k].e=e;dat[k].kg=kk;
	return;
}
void Client(){
	++kk;
	for(int i=1;i<=k;++i){
		if(a==dat[i].a&&b==dat[i].b&&dat[i].c==c&&d==dat[i].d&&e==dat[i].e){
			cout<<dat[i].kg<<endl;
			return;
		}
	}
	cout<<"FAIL\n";
	return;
}
int main(){
//	freopen("network3.in","r",stdin);
//	freopen("network3.out","w",stdout);
	cin>>n;
	for(int ni=1;ni<=n;++ni){
		string cpt,ip;
		cin>>cpt>>ip;
		if(check(ip)==0){cout<<"ERR\n";continue;}
		if(cpt=="Server")Server();
		else Client();
	}
	return 0;
}
2025/1/18 20:30
加载中...