75分求调
查看原帖
75分求调
739731
Cappuccino_mjj楼主2024/10/5 19:32
#include<bits/stdc++.h>
using namespace std;
string a,b;
int n;
bool judge(string s)
{
	int a=0,d=0,m=0;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='.')
		{
			d++;
			if(d>3)return 0;
			a=0;
			for(int j=i-1,k=1;s[j]!='.'&&j>=0;j--,k*=10)a=(s[j]-'0')*k+a;
			if(a<0||a>255)return 0;
			a=0;
		}
		if(s[i]==':')
		{
			m++;
			if(m>1)return 0;
			if(d<3)return 0;
			a=0;
			for(int j=i-1,k=1;j>=0&&s[j]!='.';j--,k*=10)a=(s[j]-'0')*k+a;
			if(a<0||a>255)
			{
//				cout<<a<<endl;
				return 0;
			}
			a=0;
		}
		if(s[i]==0&&i==0&&(s[i+1]>='0'&&s[i+1]<='9'))return 0;
		if(s[i]=='0'&&(s[i+1]!='.'&&s[i+1]!=':')&&i+1<s.size()&&!(s[i-1]>='0'&&s[i-1]<='9'))return 0;
	}
	a=0;
	for(int j=s.size()-1,k=1;j>=0&&s[j]!=':';j--,k*=10)a=(s[j]-'0')*k+a;
//	cout<<a<<endl;
	if(a<0||a>65535)return 0;
	return 1;
}
map<string,int>vis;
int main()
{
//	freopen("P7911_2.in","r",stdin);
//	cin>>a;
//	cout<<judge(a);
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a>>b;
		if(a=="Server")
		{
			if(vis[b])cout<<"FAIL\n";
			else if(!judge(b))cout<<"ERR\n";
			else
			{
				vis[b]=i;
				cout<<"OK\n";
			}
		}
		else
		{
			if(!judge(b))cout<<"ERR\n";
			else if(!vis[b])cout<<"FAIL\n";
			else if(vis[b])cout<<vis[b]<<endl;
		}
	}
}
2024/10/5 19:32
加载中...