全RE ,求助
查看原帖
全RE ,求助
396309
Im_airman楼主2022/9/21 19:24
#include<bits/stdc++.h>
using namespace std;
long long n,si=1;
unordered_map<string,long long> web;
bool zero(string a){
	if(a.size()>1 && a[0]=='0')	return 1;
	if(a[0]=='-')	return 1;
    return 0;
}
long long ERR(string a){
	long long l=a.size();
	if(l<9)	return 1;
	long long ipx1=a.find('.',0);
	if(ipx1==string::npos)	return 1;
	long long ipx2=a.find('.',ipx1+1);
	if(ipx2==string::npos)	return 1;
	long long ipx3=a.find('.',ipx2+1);
	if(ipx3==string::npos)	return 1;
	long long ipx4=a.find('.',ipx3+1);
	if(ipx4!=string::npos)	return 1;
	long long ipx5=a.find(':');
	if(ipx5==string::npos)	return 1;
	long long ipx6=a.find(':',ipx5+1);
	if(ipx6!=string::npos)	return 1;
	//cout<<ipx1<<" "<<ipx2<<" "<<ipx3<<" "<<ipx4<<" "<<ipx5<<" "<<ipx6<<endl;
	string num1=a.substr(0,ipx1);
	string num2=a.substr(ipx1+1,ipx2-ipx1-1);
	string num3=a.substr(ipx2+1,ipx3-ipx2-1);
	string num4=a.substr(ipx3+1,ipx5-ipx3-1);
	string num5=a.substr(ipx5+1);
	//cout<<num1<<" "<<num2<<" "<<num3<<" "<<num4<<" "<<num5<<endl;
	if(num1.empty() || num2.empty() || num3.empty() || num4.empty() || num5.empty() )	return 1;
	if(zero(num1) || zero(num2) || zero(num3) || zero(num4) || zero(num5)) return 1;
	if(stoi(num1)>255 || stoi(num2)>255 || stoi(num3)>255 || stoi(num4)>255 || stoi(num5)>65535) return 1;
}
int main(){
	scanf("%lld",&n);
	for(long long i=1;i<=n;i++){
		string op,add;
		cin>>op>>add;
		if(ERR(add)==1){
			cout<<"ERR\n";
		}
		else if(op=="Server"){
			if(web[add]!=0)	cout<<"FAIL\n";
			else{
				web[add]=i;	
				cout<<"OK\n";
			}
		}
		else if(op=="Client"){
			if(!web[add])	cout<<"FAIL\n";
			else cout<<web[add]<<"\n";
		}
	}
	return 0;
}
2022/9/21 19:24
加载中...