100行55分求助
查看原帖
100行55分求助
576173
FanSizhe127楼主2021/12/28 12:54
#include<bits/stdc++.h>
using namespace std;
bool q(string s){
	long long t=0,x=0,y=0,z=0,i,j,k,l;
	for(i=0;i<s.size();i++)
	{
		if((i==0||(s[i-1]=='.'||s[i-1]==':'))&&s[i]>='0'&&s[i]<='9')
			z++;
		if(s[i]=='.'||s[i]==':')
		{
			if(s[i]=='.')
				x++;
			else if(s[i]==':')
				y++;
			if((x<3&&y))
				return 0;
			if(!z)
				return 0;
			if(t<0||t>255)
				return 0;
			else
			{
				t=0;
				continue;
			}	
		}
		else if(s[i]<'0'||s[i]>'9')
			return 0;	
		if(i&&!t&&s[i-1]=='0')
			return 0;
		t=t*10+s[i]-'0';
	}
	if(x!=3||y!=1||z!=5)
		return 0;
	if(t<0||t>65535)
		return 0;
	else 
		return 1;
}
string ad[10005],a[10005],op[10005];
int main()
{
	int n,i,j,k,l;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>op[i]>>ad[i];
		k=1;
		int flag=0;
		if(op[i]=="Server")
		{
			if(q(ad[i])==0)
				cout<<"ERR"<<'\n';
			else 
			{
				for(j=1;j<=k;j++)
				{
					if(a[j]==ad[i])
					{
						flag=1;
						break; 
					}						
				}
				if(flag==1)
					cout<<"FAIL"<<'\n';
				else
				{
					cout<<"OK"<<'\n';
					a[k]=ad[i];
					k++;
				}					
			}
		}
		else
		{
			if(q(ad[i])==0)
				cout<<"ERR"<<'\n';
			else 
			{
				for(j=1;j<=n;j++)
				{
					if(!(op[j]=="Server"))
						continue;
					if(ad[j]==ad[i])
					{
						flag=1;
						break; 
					}						
				}
				if(flag==0)
					cout<<"FAIL"<<'\n';
				else
				{
					cout<<j<<'\n';				
				}					
			}
		}
	}
}
2021/12/28 12:54
加载中...