10分求助
查看原帖
10分求助
541553
wangshi楼主2021/10/25 15:38
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<stack>
#include<queue>
#include<vector>
#include<map>
using namespace std;
map<string,int> q;
int main()
{
	int n,ser=0,cli=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		char a;
		cin>>a;
		if(a=='S')
		{
			scanf("erver ");
			string s;
			getline(cin,s);
			int shu=0,sum=1;
			bool f=true;
			if(s[0]=='0')
			{
				f=false;
				printf("ERR\n"); 
				continue;				
			}
			for(int j=0;j<s.size();j++)
			{
				if(s[j]>='0'&&s[j]<='9')
				{
					shu*=10;
					shu+=s[j]-'0';
				}
				else
				{
					if(s[j]=='.')
					{
						if(sum==4||shu>255)
						{
							f=false;
							printf("ERR\n"); 
							break;						
						}
					}
					if(s[j]==':')
					{
						if(shu>255||sum!=4)
						{
							f=false;
							printf("ERR\n"); 
							break;						
						}
						shu=0;
						if(s[j+1]=='0')
						{
							f=false;
							printf("ERR\n"); 
							break;				
						}	
						for(int k=j+1;k<s.size();k++)
						{
							shu*=10;
							shu+=s[k]-'0';
						}
						if(shu>65535)
						{
							f=false;
							printf("ERR\n"); 
							break;						
						}
						break;
					}
					if(s[j+1]=='0')
					{
						f=false;
						printf("ERR\n"); 
						break;				
					}
					sum++;
					shu=0;
				}
			}
			if(f)
			{
				if(q[s]==0)
				{
					printf("OK\n");
					q[s]=i; 
				}
				else
				{
					printf("FAIL\n");
				}
			}
		} 
		else
		{
			scanf("lient ");
			string s;
			getline(cin,s);
			int shu=0,sum=1;
			bool f=true;
			if(s[0]=='0')
			{
				f=false;
				printf("ERR\n"); 
				continue;				
			}
			for(int j=0;j<s.size();j++)
			{
				if(s[j]>='0'&&s[j]<='9')
				{
					shu*=10;
					shu+=s[j]-'0';
				}
				else
				{
					if(s[j]=='.')
					{
						if(sum==4||shu>255)
						{
							f=false;
							printf("ERR\n"); 
							break;						
						}

					}
					if(s[j]==':')
					{
						if(shu>255)
						{
							f=false;
							printf("ERR\n"); 
							break;						
						}
						if(sum!=4)
						{
							f=false;
							printf("ERR\n"); 
							break;						
						}
						shu=0;
						if(s[j+1]=='0')
						{
							f=false;
							printf("ERR\n"); 
							break;				
						}
						for(int k=j+1;k<s.size();k++)
						{
							shu*=10;
							shu+=s[k]-'0';
						}
						if(shu>65535)
						{
							f=false;
							printf("ERR\n"); 
							break;						
						}
						break;
	
					}
					if(s[j+1]=='0')
					{
						f=false;
						printf("ERR\n"); 
						break;				
					}
					sum++;
					shu=0;
				}
			}
			if(f)
			{
				if(q[s]!=0)
				{
					printf("%d\n",q[s]); 
				}
				else
				{
					printf("FAIL\n");
				}
			}
		}
	}
	return 0;
}
2021/10/25 15:38
加载中...