【求助】过了四个样例数据(本地测评……大样例也过了)……提交竟然全WA……?!
查看原帖
【求助】过了四个样例数据(本地测评……大样例也过了)……提交竟然全WA……?!
602098
Miss_yan楼主2021/10/31 01:54

RT 代码如下

#include<iostream>
#include<fstream>
#include<string.h>
#include<map>
#include<algorithm>

using namespace std;

int n; 
string kind,save,num,str;
char s;
map<string,int> cc;

bool abcd(string f)
{
	if(f.size()<=2&&f>="0") return true;
	if(f<="255"&&f.size()==3) return true;
	return false;
}

bool e(string f)
{
	if(f.size()<=4&&f>="0") return true;
	if(f<="65535"&&f.size()==5) return true;
	return false;
}

int ERR()
{
	cin>>str;
	int i=0;
	num="";
	while(str[i]>='0'&&str[i]<='9')
	num=num+str[i],i++;
	if(num[0]=='0'&&num.size()!=1) 
	{
		return -1;
	}
	
	if(abcd(num)==false)
	{
		return -1;
	}
	save=save+num;
	s=str[i];
	if(s!='.')
	{
		return -1;
	}
	save=save+s;
	
	i++;
	num="";
	while(str[i]>='0'&&str[i]<='9')
	num=num+str[i],i++;
	if(num[0]=='0'&&num.size()!=1) 
	{
		return -1;
	}
	if(abcd(num)==false)
	{
		return -1;
	}
	save=save+num;
	s=str[i];
	if(s!='.')
	{
		return -1;
	}
	save=save+s;
	
	i++;
	num="";
	while(str[i]>='0'&&str[i]<='9')
	num=num+str[i],i++;
	if(num[0]=='0'&&num.size()!=1) 
	{
		return -1;
	}
	if(abcd(num)==false)
	{
		return -1;
	}
	save=save+num;
	s=str[i];
	if(s!='.')
	{
		return -1;
	}
	save=save+s;
	
	i++;
	num="";
	while(str[i]>='0'&&str[i]<='9')
	num=num+str[i],i++;
	if(num[0]=='0'&&num.size()!=1) 
	{
		return -1;
	}
	if(abcd(num)==false)
	{
		return -1;
	}
	save=save+num;
	s=str[i];
	if(s!=':')
	{
		return -1;
	}
	save=save+s;
	
	i++;
	num="";
	while(str[i]>='0'&&str[i]<='9'&&i<=str.size()-1)
	num=num+str[i],i++;
	if(num[0]=='0'&&num.size()!=1) 
	{
		return -1;
	}
	if(e(num)==false)
	{
		return -1;
	}
	save=save+num;
	if(i!=str.size())
	{
		return -1;
	}
}

int FAILS(int w)
{
	if(cc[save]!=0) return -1;
	else
	cc[save]=w;
}

int FAILC()
{
	if(cc[save]==0) return -1;
}

int main()
{
	//freopen("network3.in","r",stdin);
   //freopen("network3.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>kind;
		save="";
		if(kind=="Server")
		{
			if(ERR()==-1)
			{
				cout<<"ERR"<<endl;
				continue;
			}
			if(FAILS(i)==-1)
			{
				cout<<"FAIL"<<endl;
				continue;
			}
			cout<<"OK"<<endl;		
		}
		if(kind=="Client")
		{
			if(ERR()==-1)
			{
				cout<<"ERR"<<endl;
				continue;
			}
			if(FAILC()==-1)
			{
				cout<<"FAIL"<<endl;
				continue;
			}
			cout<<cc[save]<<endl;			
		}

	}

	return 0;
}

2021/10/31 01:54
加载中...