55WA求调(悬关)
查看原帖
55WA求调(悬关)
547457
i_love_tym楼主2023/6/9 10:14
#include<bits/stdc++.h>
using namespace std;
map<string,int> snum1,cnum1;
map<int,string> snum2,cnum2;
bool check(string s){
	string w;
	int c=0,cnt=0;
	for(int i=0;i<s.size();i++){
		if(s[i]>='0'&&s[i]<='9') c=c*10+(int)(s[i]-'0');
		else if(s[i]=='.'||s[i]==':'){
			w+='.';
			cnt++;
			if(cnt==5&&c>65535) return false;
			if(cnt<5&&c>255) return false;
			c=0;
		}
	}
	if(w!="....") return false;
	return true;
}
int main(){
	//freopen("network.in","r",stdin);
	//freopen("network.out","w",stdout);
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		string op,ad;
		cin>>op>>ad;
		if(op=="Server"){
			if(check(ad) and snum1[ad]==0) {
				snum1[ad]=i;
				snum2[i]=ad;
				cout<<"OK"<<endl;
			}
			else if(check(ad)&&snum1[ad]!=0) cout<<"FAIL"<<endl;
			else if(check(ad)==false) cout<<"ERR"<<endl;
		}
		else {
			if(check(ad)&&snum1[ad]!=0) cout<<snum1[ad]<<endl;
			else if(check(ad)&&snum1[ad]==0) cout<<"FAIL"<<endl;
			else if(check(ad)==false) cout<<"ERR"<<endl;
		}
	}
}
2023/6/9 10:14
加载中...