25分,A#2~#6,求助
查看原帖
25分,A#2~#6,求助
428078
__Allen楼主2021/11/15 20:22
#include<bits/stdc++.h>
using namespace std;
int n;
struct p{
	int a,b,c,d,e;
};
bool is(p x){
	return x.a<=255&&x.b<=255&&x.c<=255&&x.d<=255&&x.e<=65535;
}
bool operator==(const p &x,const p &y){
	return x.a==y.a&&x.b==y.b&&x.c==y.c&&x.d==y.d&&x.e==y.e;
}
p a[1001];
int num[6];
int main(){
	scanf("%d",&n);
	int nv=1;
	while(n--){
		memset(num,0,sizeof(num));
		string s1,s2;
		cin>>s1>>s2;
		int nw=1;
		bool isis=1;
		for(int i=0;i<s2.size();i++){
			if(s2[i]>='0'&&s2[i]<='9'){
				s2[i]-=(int)'0';
				num[nw]=10*num[nw]+(int)s2[i];
			}else{
				if(nw==1||nw==2||nw==3){
					if(s2[i]!='.'){
						printf("ERR\n");isis=0;
						break;
					}
				}else if(nw==4){
					if(s2[i]!=':'){
						printf("ERR\n");isis=0;
						break;
					}
				}
				nw++;
			}
		}
		if(nw!=5){
			printf("ERR\n");
			continue;
		}
		p x={num[1],num[2],num[3],num[4],num[5]};
		if(!is(x)){
			printf("ERR\n");
				continue;
			
		}
		if(!isis)continue;
		if(s1[0]=='S'){
			bool f=1;
			for(int i=1;i<nv;i++){
				if(a[i]==x){
					f=0;
					printf("FAIL\n");
					break;
				}
			}
			if(f){
				printf("OK\n");
				a[nv++]=x;
			}
		}else{
			bool f=1;
			for(int i=1;i<nv;i++){
				if(a[i]==x){
					printf("%d\n",i);
					f=0;
					break;
				}
			}
			if(f){
				printf("FAIL\n");
			}
		}
	}
	
}
2021/11/15 20:22
加载中...