25分求调
查看原帖
25分求调
746229
Joker_lazydoghead楼主2023/9/3 21:21

rt 评测寄录:link

die码:

//Name:Lazy_doghead
#include<bits/stdc++.h>
#define U unsigned
#define INT int
#define LNG long
#define TLNG LNG LNG
#define UINT U INT
#define UTLNG U TLNG
#define rep(i,k,n) for(i=k;i<=n;i++)
#define tep(i,n,k) for(i=n;i>=k;i--)
using namespace std;
struct Node{
	string ad;
	INT id;
}s[1010];
string op,ad;
INT n,i,cnt,ans;
bool pd_ERR(string ad,INT sz){
	INT p=0,t,x,r,q,o=0;
	string num;
	if(ad[0]=='0'&&sz)return 1;
	rep(t,0,4){
		x=0;
		r=1;
		num="";
		while(p<sz&&ad[p]>='0'&&ad[p]<='9')num+=ad[p],p++;
		tep(q,(INT)(num.size())-1,0){
			x+=(num[q]-'0')*r;
			r*=10;
		}
		o++;
		if(o<=3&&ad[p]==':')return 1;
		else if(o==4&&ad[p]=='.')return 1;
		if(o<=4){
			if(x>255)return 1;
		}else if(o==5){
			if(x>65535)return 1;
		}
		p++;
	}
	return 0;
}
bool pd_Server_FAIL(string ad){
	INT t;
	rep(t,1,cnt){
		if(s[t].ad==ad)return 1;
	}
	return 0;
}
INT Client_Search_Server(string ad){
	INT t;
	rep(t,1,cnt){
		if(ad==s[t].ad)return s[t].id;
	}
	return -1;
}
int main(){
	scanf("%d",&n);
	rep(i,1,n){
		cin>>op>>ad;
		if(pd_ERR(ad,(INT)(ad.size()))){
			printf("ERR\n");
			continue;
		}
		if(op=="Server"){
			if(!pd_Server_FAIL(ad)){
				s[++cnt].id=i;
				s[cnt].ad=ad;
				printf("OK\n");
			}else printf("FAIL\n");
		}else{
			ans=Client_Search_Server(ad);
			if(ans==-1)printf("FAIL\n");
			else printf("%d\n",ans);
		}
	}
	return 0;
}
2023/9/3 21:21
加载中...