re 求调
查看原帖
re 求调
517646
陈容浩!!!楼主2024/7/27 22:20
#include<bits/stdc++.h>
using namespace std;
string ser[21],lx;
int n,m,k,l,serx[100];
bool f[6];

long long zhuan(string s1){
	long long o=0;
	for(int i=0;i<s1.size();i++){
		o=o*10+int(s1[i]-'0');
	}
	return o;
}
bool qd(string s1,string s2,string s3,string s4,string s5){
	if(s1[0]=='0'&&s1.size()>1) return false;
	if(s2[0]=='0'&&s2.size()>1) return false;
	if(s3[0]=='0'&&s3.size()>1) return false;
	if(s4[0]=='0'&&s4.size()>1) return false;
	if(s5[0]=='0'&&s5.size()>1) return false;
	return true;
}
bool hf(string s1){
	string s2="",s3="",s4="",s5="",s6="",p,o;
	p=s1;
	int k=s1.find('.');
	s2=s1.substr(0,k);
	s1.erase(0, k+1);
	k=s1.find('.');
	s3=s1.substr(0,k);
	s1.erase(0, k+1);
	k=s1.find('.');
	s4=s1.substr(0,k);
	s1.erase(0, k+1);
	k=s1.find(':');
	s5=s1.substr(0,k);
	s1.erase(0, k+1);
	s6=s1.substr(0,s1.size());
	
	//s6.erase(s6.size()-1,s6.size()-1);
	o=s2+"."+s3+"."+s4+"."+s5+":"+s6;
	//o.erase(o.size()-1,o.size()-1);
	//cout<<o;
	if(o!=p) return false;
	if(!qd(s2,s3,s4,s5,s6)) return false;
	if(zhuan(s2)>=0&&zhuan(s3)>=0&&zhuan(s4)>=0&&zhuan(s5)>=0&&zhuan(s5)<=255&&zhuan(s6)>=0&&zhuan(s6)<=65535){
		return true;
	}
	return  false;
}
int  find1(string s1,int i){
	for(int j=1;j<i;j++){
		if(s1==ser[j]) return j;
	}
	return 0;
}
int main(){
	cin>>n;
	string u;
	int v=0;
	for(int i=1;i<=n;i++){
		cin>>lx;
		if(lx=="Server"){
			cin>>ser[i];
			
			
			if(hf(ser[i])&&find1(ser[i],i)==0){
				serx[k]=i;
				k++;
				cout<<"OK"<<endl;
			}else if(!hf(ser[i])){ 
				cout<<"ERR"<<endl;
			}else{
				cout<<"FAIL"<<endl;
			}
		}else{
			cin>>u;
			if(hf(u)){
				if(find1(u,i)>0) cout<<find1(u,i)<<endl;
				else cout<<"FAIL"<<endl;
			}else{
				cout<<"ERR"<<endl;
			}
		}
	}

	

	return 0;
}

2024/7/27 22:20
加载中...