样例全对但洛谷测试全错,求哪里错了
  • 板块学术版
  • 楼主__BAI__
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/10/23 21:09
  • 上次更新2023/11/4 02:36:30
查看原帖
样例全对但洛谷测试全错,求哪里错了
458493
__BAI__楼主2021/10/23 21:09
#include<bits/stdc++.h>
using namespace std;
struct mud{
	char name1[10];
	char name2[100];
	int a[5]={0,0,0,0,0};
	int s1=0,s2=0;
	bool hf=0;
	int lj=-1,xz;
}a[1005];
int n;
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i].name1>>a[i].name2;
		for(int j=0;j<strlen(a[i].name2);j++){
			if(a[i].name2[j]==':')
				a[i].s1++;
			if(a[i].name2[j]=='.')
				a[i].s2++;
			if(a[i].name2[j]=='.' or a[i].name2[j]==':')
				if((a[i].name2[j+1]=='0' and a[i].name2[j+2]!=':' and a[i].name2[j+2]!='.') or (a[i].name2[0]=='0' and a[i].name2[1]!='.'))
					a[i].s1=0,a[i].s2=0;
		}
		if(a[i].s1==1 and a[i].s2==3)
			a[i].hf=1;
		if(a[i].hf==1){
			int k=0;
			for(int j=0;j<strlen(a[i].name2);j++){
				if(a[i].name2[j]>='0' and a[i].name2[j]<='9'){
					a[i].a[k]*=10;
					a[i].a[k]+=a[i].name2[j]-'0';
				}else
					k++;
			}
			if(a[i].a[0]<=255 and a[i].a[1]<=255 and a[i].a[2]<=255 and a[i].a[3]<=255 and a[i].a[4]<=65535)
				a[i].hf=1;
			else
				a[i].hf=0;
		}
		if(a[i].hf==1){
			if(a[i].name1[0]=='C')
				a[i].xz=1;
			else if(a[i].name1[0]=='S')
				a[i].xz=2;
		}
	}
	for(int i=0;i<n;i++){
		if(a[i].hf==1){
			if(a[i].xz==2){
				for(int j=i;j<=n;j++){
					if(a[j].xz==1 and a[j].hf==1 and a[j].lj==-1){
						bool h=1;
						for(int r=0;r<=4;r++)
							if(a[j].a[r]!=a[i].a[r]){
								h=0;
							}
						if(h==1){
							a[j].lj=i;
							a[i].lj=j;
						}
					}
				}
				if(a[i].lj!=-1)
					printf("OK\n");
				else
					printf("FAIL\n");
			}else{
				if(a[i].lj!=-1)
					printf("%d\n",a[i].lj+1);
				else
					printf("FAIL\n");
			}
		}else{
			printf("ERR\n");
		}
	}
	return 0;
}
2021/10/23 21:09
加载中...