75分求助 #12 #13#18#19#20 WA
查看原帖
75分求助 #12 #13#18#19#20 WA
389398
SBsimon楼主2021/10/28 14:16

RT

#include<bits/stdc++.h>
#define int long long
using namespace std;
int a1;
int b1;
int c1;
int d1;
int e1;
int na;
string S[1020];
int u[1020];
signed main()
{
	int n;
	cin>>n;
	for(int i=1;i<=n;++i)
	{
		a1=0;
		b1=0;
		c1=0;
		d1=0;
		e1=0;
		char fa;
		char fb;
		char fc;
		char fd;
		string a;
		string b;
		string c;
		string d;
		string e;
		string cc,s;
		cin>>cc>>s;
		int siz=s.size();
		int cs=0;
		int w=0;
		string t;
		for(int j=0;j<siz;++j)
		{
			if(s[j]=='.'||s[j]==':')
			{
				++w;
				if(w==1)
				{
					fa=s[j];
					a=t;
				}
				if(w==2)
				{
					fb=s[j];
					b=t;
				}
				if(w==3)
				{
					fc=s[j];
					c=t;
				}
				if(w==4)
				{
					cs=-1;
					fd=s[j];
					d=t;
				}
				t="";
			}
			else
				t+=s[j];
		}
		e=t;
		++cs;
		if(fa!='.') ++cs;
		if(fb!='.') ++cs;
		if(fc!='.') ++cs;
		if(fd!=':') ++cs;
		siz=a.size();
		if(siz>3)
			++cs;
		if(siz>1&&a[0]=='0')
			++cs;
		for(int j=0;j<siz;++j)
		{
			if(a[j]<'0'||a[j]>'9')
				++cs;
			a1+=a[j]-'0';
			a1*=10;
		}
		a1/=10;
		siz=b.size();
		if(siz>3)
			++cs;
		if(siz>1&&b[0]=='0')
			++cs;
		for(int j=0;j<siz;++j)
		{
			if(b[j]<'0'||b[j]>'9')
				++cs;
			b1+=b[j]-'0';
			b1*=10;
		}
		b1/=10;
		siz=c.size();
		if(siz>3)
			++cs;
		if(siz>1&&c[0]=='0')
			++cs;
		for(int j=0;j<siz;++j)
		{
			if(c[j]<'0'||c[j]>'9')
				++cs;
			c1+=c[j]-'0';
			c1*=10;
		}
		c1/=10;
		siz=d.size();
		if(siz>3)
			++cs;
		if(siz>1&&d[0]=='0')
			++cs;
		for(int j=0;j<siz;++j)
		{
			if(d[j]<'0'||d[j]>'9')
				++cs;
			d1+=d[j]-'0';
			d1*=10;
		}
		d1/=10;
		siz=e.size();
		if(siz>5)
			++cs;
		if(siz>1&&e[0]=='0')
			++cs;
		for(int j=0;j<siz;++j)
		{
			if(e[j]<'0'||e[j]>'9')
				++cs;
			e1+=e[j]-'0';
			e1*=10;
		}
		e1/=10;
		if(a1<0||a1>255||b1<0||b1>255||c1<0||c1>255||d1<0||d1>255||e1<0||e1>65535)
			++cs;
		if(cs==0)
		{
			if(cc=="Server")
			{
				int f=0;
				int j;
				for(j=1;j<=na;++j)
				{
					if(s==S[j])
					{
						f=1;
						break;
					}
				}
				if(f==0)
				{
					++na;
					S[na]=s;
					u[na]=i;
					cout<<"OK"<<endl;
				}
				else
					cout<<"FAIL"<<endl;
			}
			else
			{
				int f=0;
				for(int j=1;j<=na;++j)
					if(S[j]==s)
					{
						f=1;
						cout<<u[j]<<endl;
						break;
					}
				if(f==0)
					cout<<"FAIL"<<endl;
			}
		}
		else
			cout<<"ERR"<<endl;
	}
	return 0;
}
2021/10/28 14:16
加载中...