求助,悬一关
查看原帖
求助,悬一关
1069573
songhongying楼主2024/9/7 16:49
#include<bits/stdc++.h>
using namespace std;
int z;
string a,s;
map<string,int> mp;
int main(){
	
	cin>>z;
	for(int i=1;i<=z;i++)
	{
	    cin>>a;
		cin>>s;
	    int t=0,q=0,w=0,len=s.size();
	    for(int j=1;j<=5;j++,t=0)
	    {
	        if(!isdigit(s[q]))
	        {
	            w=1;
	            break;
	        }
	        if(s[q]=='0'&&q+1<len&&isdigit(s[q]))
	        {
	            w=1;
	            break;
	        }
	        for(q;q<len&&isdigit(s[q]);q++)
	        {
	            t=t*10+int(s[q]-'0');
	            if(j<=4&&t>255)
	            {
	                w=1;
	                break;
	            }
	            if(j==5&&t>65535)
	            {
	                w=1;
	                break;
	            }
	        }
	        if(j<4&&s[q]!='.')
	        {
	            w=1;
	            break;
	        }
	        if(j==4&&s[q]!=':')
	        {
	            w=1;
	            break;
	        }
	        if(j!=5)  q++;
	    }
	    if(w==1||q!=len)
	    {
	        cout<<"ERR"<<endl;
	        continue;
	    }
	    if(a=="Server")
	    {
	        if(mp[s]==0)  mp[s]=i,cout<<"OK"<<endl;
	        else  cout<<"FALT"<<endl;
	    }
	    else
	    {
	        if(mp[s]!=0)  cout<<mp[s]<<endl;
	        else  cout<<"FALT"<<endl;
	    }
	}
	
	return 0;
}
2024/9/7 16:49
加载中...