75分求调T-T
查看原帖
75分求调T-T
1405956
YY9999楼主2024/10/15 16:43
#include<bits/stdc++.h>
using namespace std;
map<string,int> mp;
char c[110];
int z[110];
bool f(string s){
	memset(c,0,sizeof(c));
	long long l=s.size(),k=0,p=0,d=0,m=0,j=0;
	for(int i=0;i<l;i++){
		if(s[i]=='-') return 0;
		else if(s[i]>='0'&&s[i]<='9'){
			if(s[i]=='0'&&k==0&&s[i+1]>='0'&&s[i+1]<'9') return 0;
			k=k*10+s[i]-'0';
		}
		else if(s[i]=='.'||s[i]==':'){
			z[++j]=k;
			k=0;
			c[++p]=s[i];
			if(s[i]=='.') d++;
			if(s[i]==':') m++;
		}
		else return 0;
	}
	z[++j]=k;
	if(d!=3||m!=1) return 0;
	if(c[p]!=':') return 0;
	if(z[j]<0||z[j]>65535) return 0;
	for(int i=1;i<j;i++) if(z[i]<0||z[i]>255) return 0;
	return 1;
}
int main(){
	int n;
	cin>>n;
	for(int _=1;_<=n;_++){
		string a,b;
		cin>>a>>b;
		if(!f(b)){
			cout<<"ERR\n";
			continue;
		}
		if(a=="Server"){
			if(mp[b]) cout<<"FAIL\n";
			else{
				mp[b]=_;
				cout<<"OK\n";
			}
		}
		if(a=="Client"){
			if(!mp[b]) cout<<"FAIL\n";
			else cout<<mp[b]<<'\n';
		}
	}
}
2024/10/15 16:43
加载中...