80pts求教
查看原帖
80pts求教
68335
黄鹤不复返楼主2021/11/17 21:26

讲个笑话我做了三天

#include<iostream>
#include<cstdio>
#include<cstring>
#define rg register
using namespace std;

int n,cn=0;
long long a[1010][10],t[10],b[10];
char c[10],s[100];

inline int len(long long x)
{
	if(x==0) return 1;
	int l=0; long long temp=x;
	while(temp)
	 {
	 	temp/=10;
	 	l++;
	 }
	return l;
}

int main()
{

	cin>>n; getchar();
	for(rg int i=1;i<=n;i++)
	 {
	 	scanf("%s %s",c+1,s+1); 
		 
		int l=strlen(s+1),cnt=1; bool f=1;
		s[l+1]='.'; b[1]=b[2]=b[3]=b[4]=b[5]=0;
		
		for(rg int j=1;j<=l+1;j++)
		 {
		 	if(s[j]=='.'||s[j]==':') 
		 	 {
		 	 	t[cnt]=j;
		 	 	cnt++;
		 	 }
		 	else b[cnt]=b[cnt]*10+s[j]-'0';
		 }
		
		if(b[1]>255||b[2]>255||b[3]>255||b[4]>255||b[5]>65535) f=0;
		
		if(f)
		 {
		 	for(rg int j=2;j<=cnt;j++)
		 	 {
		 	 	int x=j-1;
		 	 	if(len(b[x])<t[x]-t[x-1]-1) f=0;
		 	 	if(x<=3&&s[t[x]]!='.'||x==4&&s[t[x]]!=':') f=0;
		 	 	if(f==0) break;
		 	 }
		 }
	    
	    if(f)
	     {
	     	if(c[1]=='S')
		     {
		     	rg int j;
	    		for(j=1;j<=cn;j++)
				 if(a[j][1]==b[1]&&a[j][2]==b[2]&&a[j][3]==b[3]&&a[j][4]==b[4]&&a[j][5]==b[5]) break;
				if(j>cn)
				 {
				 	puts("OK");
				 	cn++;
				 	a[cn][1]=b[1]; a[cn][2]=b[2]; a[cn][3]=b[3]; a[cn][4]=b[4]; a[cn][5]=b[5];
					a[cn][6]=i;
				 }
				else puts("FAIL");
		     }
		    if(c[1]=='C')
		     {
		     	rg int j;
	    		for(j=1;j<=cn;j++)
				 if(a[j][1]==b[1]&&a[j][2]==b[2]&&a[j][3]==b[3]&&a[j][4]==b[4]&&a[j][5]==b[5]) break;
				if(j<=cn) printf("%lld\n",a[j][6]);
				 else puts("FAIL");
		     }
	     }
	    else puts("ERR");
	 }
	
	return 0;
}

救救孩子阿巴阿巴阿巴

2021/11/17 21:26
加载中...