75分求助TUT
查看原帖
75分求助TUT
1030687
coco20121120楼主2024/10/11 17:36
#include<bits/stdc++.h>
using namespace std;
map<string,long long> f;
bool check(string s){
	int len=s.length();
	int d=0,m=0;
	for(int i=0;i<len;i++){
		if(s[i]=='.') d++;
		if(s[i]==':') m++;
		if(d>3||m>1) return false;
		if(i==0&&s[i]=='0'&&s[i+1]!='.') return false;
		if(s[i-1]=='.'&&s[i]=='0'&&s[i+1]!='.'&&s[i+1]!=':') return false;
		if(s[i-1]==':'&&s[i]=='0'&&i!=len-1) return false;
	}
	if(d!=3||m!=1) return false;
	long long x=0;
	for(int i=0;i<len;i++){
		if(s[i]!='.'&&s[i]!=':'&&(s[i]<'0'||s[i]>'9')) return false;
		if(s[i]!='.'&&s[i]!=':') x=x*10+(s[i]-48);
		else{
			if(x>255) return false;
			x=0;
		}
	}
	if(x>65535) return false;
	return true;
}
int main(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		string a,b;
		cin>>a>>b;
		if(a=="Server"){
			bool ls=check(b);
			if(ls==true&&f[b]==0){
				printf("OK\n");
				f[b]=i;
			}
			else if(ls==false) printf("ERR\n");
			else printf("FAIL\n");
		}
		else{
			bool ls=check(b);
			if(ls==true&&f[b]!=0) printf("%lld\n",f[b]);
			else if(ls==false) printf("ERR\n");
			else printf("FAIL\n");
		}
	} 
	return 0;
}
2024/10/11 17:36
加载中...