求助性质2
查看原帖
求助性质2
180406
lilong楼主2021/10/30 15:03

#12,#13,#18,#19,#20错误答案,本人看不出来,求助

#include <iostream>
#include <cstdio>
using namespace std;
string c1[1001],d1[1001],ans[1001];
int c2[1001],d2[1001];
int lena,lenb;
bool pd(string s)
{
	int t=0,ans=0;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]>='0'&&s[i]<='9') t=t*10+s[i]-'0';
		else
		{
			if(s[i]=='.'||s[i]==':')
			{
				if(s[i+1]=='0'&&s[i+2]>='0'&&s[i+2]<='9') return false;
				ans++;
				if(s[i]=='.'&&ans>3) return false;
				if(s[i]==':'&&ans<4) return false;
				if(ans==5)
				{
					if(t<0||t>65535) 
						return false;
				}
				if(ans<5)
				{
					if(t<0||t>255)
						return false;
				}
				t=0;
			}
		}
	}
	if(ans==4)
	{
		if(t<0||t>65536) 
			return false;
	}
	return true;
}
void jia1(string s,int k)
{
	for(int i=1;i<=lena;i++)
		if(c1[i]==s)
		{
			ans[k]="FAIL";
			return;
		}
	ans[k]="OK";
	c1[++lena]=s;
	c2[lena]=k;
	return;
}
string chai(int x)
{
	int y=x,len;
	string a,b;
	do
	{
		a=a+char(y%10+'0');
		y/=10;
	}
	while(y!=0);
	len=a.size();
	for(int i=0;i<len/2;i++)
	{
		char t=a[i];
		a[i]=a[len-i-1];
		a[len-i-1]=t;
	}
	return a;
}
int main()
{
	int n;
	string a,b;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a>>b;
		if(!pd(b))
		{
			ans[i]="ERR";
			continue;
		}
		if(a=="Server") jia1(b,i);
		if(a=="Client")
		{
			d1[++lenb]=b,d2[lenb]=i,ans[i]="FAIL";
			for(int j=1;j<=lena;j++)
				if(d1[lenb]==c1[j])
					ans[d2[lenb]]=chai(c2[j]);
		}
	}
	for(int i=1;i<=n;i++)
		cout<<ans[i]<<endl;
	return 0;
}
2021/10/30 15:03
加载中...