好耶,65分
查看原帖
好耶,65分
677850
no2lxs楼主2022/10/7 16:43
#include<iostream>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<algorithm>//sort函数库 
#include<cstdlib>
#include<cstring>
#include<bits/stdc++.h>
#include<map>
#define gets(S) fgets(S,sizeof(S),stdin)
#pragma optimize GCC(2)
using namespace std;
struct com
{
	string shape,address;
	bool ok;
	int num;
}comp[10000];
bool cmp1(string s)
{
	if(s.size() <3)
	{
		if(s[0]=='0'&&s.size() !=1)return false;
		else if(s[0]=='-')return false;
	}
	else
	{
		long long num=(s[0]-'0')*100+(s[1]-'0')*10+(s[2]-'0');
		if(num>255)return false;
	}
	return true;
}
bool cmp2(string s)
{
	if(s.size() <5)
	{
		if(s[0]=='0'&&s.size() !=1)return false;
		else if(s[0]=='-')return false;
	}
	else
	{
		long long num=(s[0]-'0')*10000+(s[1]-'0')*1000+(s[2]-'0')*100+(s[3]-'0')*10+(s[4]-'0');
		if(num>65535)return false;
	}
	return true;
}
bool cmp(string s)
{
	int mao=0,point=0;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='.')point++;
		if(s[i]==':')
		{
			mao++;
			if(point!=3)return false;
		}
	}
			if(point!=3||mao!=1)return false;
	string part1="",part2="",part3="",part4="",part5="";
	int key;
	for(int i=0;i<s.size();i++)
	{
		if(s[i]=='.')
		{
			key=i+1;break;
		}
		else
		{
			part1+=s[i];
		}
	}
	for(int i=key;i<s.size();i++)
	{
		if(s[i]=='.')
		{
			key=i+1;break;
		}
		else
		{
			part2+=s[i];
		}
	}
	for(int i=key;i<s.size();i++)
	{
		if(s[i]=='.')
		{
			key=i+1;break;
		}
		else
		{
			part3+=s[i];
		}
	}
	for(int i=key;i<s.size();i++)
	{
		if(s[i]==':')
		{
			key=i+1;break;
		}
		else
		{
			part4+=s[i];
		}
	}
	for(int i=key;i<s.size();i++)
	{
			part5+=s[i];
	}
	if(part1.size()>3||part2.size()>3||part3.size()>3||part4.size()>3||part5.size()>5)
	{
		return false;
	}
	if(cmp1(part1)==false)return false;
	if(cmp1(part2)==false)return false;
	if(cmp1(part3)==false)return false;
	if(cmp1(part4)==false)return false;
	if(cmp2(part5)==false)return false;
	return true;
}
int main()
{	
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>comp[i].shape>>comp[i].address;
	}
	for(int i=1;i<=n;i++)
	{
		if(cmp(comp[i].address)==true)
		{
			for(int j=1;j<i;j++)
			{
				if(comp[i].address==comp[j].address&&comp[j].shape==comp[i].shape&&comp[i].shape =="Server")
				{
					cout<<"FAIL"<<endl;goto FLAG; 
				}
			}
			if(comp[i].shape =="Server")
			{
				cout<<"OK"<<endl;
			}
			else 
			{
				for(int j=1;j<i;j++)
				{
					if(comp[i].address==comp[j].address&&comp[j].shape!=comp[i].shape )
					{
						cout<<j<<endl;goto FLAG;
					}
				}
				cout<<"FAIL"<<endl;
			}
		}
		else
		{
			cout<<"ERR"<<endl;
		}
		FLAG:;
	}
		return 0;
}

找不到错误的我又来求助了

2022/10/7 16:43
加载中...