求助
查看原帖
求助
378741
sgz566楼主2021/11/3 23:40

65分求助,有WA有RE的,求调

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
string s,t;
bool flag;
int n,num,cnt,cntt,web[5][1005]; 
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		num=cnt=cntt=0;
		flag=0;
		cin>>s>>t;
		if(t[0]=='.'||t[0]==':')flag=1;
		int len=t.length();
		for(int j=0;j<=len;j++)
		{
			if(t[j]==':'||t[j]=='.'||t[j]=='\0')
			{
				cnt++;
				if(j==0||t[j-1]=='.'||t[j-1]==':'||num>=66536||(num>=256&&t[j]!='\0')||(cntt==3&&t[j]!=':')||(cntt<3&&t[j]!='.'))
				{
					flag=1;
					break;
				}
				web[cntt][i]=num;
				cntt++;
				num=0;
			}
			else
			{
				if(j!=0&&t[j]=='0'&&t[j+1]!='.'&&t[j+1]!=':'&&t[j+1]!='\0'&&(t[j-1]=='.'||t[j-1]==':'))
				{
					flag=1;
					break;
				}
				num*=10;
				num+=t[j]-'0';
			}
		}
		if(cntt!=5)flag=1;
		if(flag)
		{
			cout<<"ERR"<<endl;
			web[0][i]=web[1][i]=web[2][i]=web[3][i]=web[4][i]=-1;
			continue;
		}
		if(s[0]=='S')
		{
			for(int j=1;j<i;j++)
			{
				if(web[0][j]==web[0][i]&&web[1][j]==web[1][i]&&web[2][j]==web[2][i]&&web[3][j]==web[3][i]&&web[4][j]==web[4][i])
				{
					flag=1;
					cout<<"FAIL"<<endl;
					web[0][i]=web[1][i]=web[2][i]=web[3][i]=web[4][i]=-1;
					break;
				}
			}
			if(!flag)cout<<"OK"<<endl;
		}
		else
		{
			for(int j=1;j<i;j++)
			{
				if(web[0][j]==web[0][i]&&web[1][j]==web[1][i]&&web[2][j]==web[2][i]&&web[3][j]==web[3][i]&&web[4][j]==web[4][i])
				{
					flag=1;
					cout<<j<<endl;
					break;
				}
			}
			web[0][i]=web[1][i]=web[2][i]=web[3][i]=web[4][i]=-1;
			if(!flag)cout<<"FAIL"<<endl;
		}
	}
	return 0;
}
2021/11/3 23:40
加载中...