0pts 求调
查看原帖
0pts 求调
1342225
liusizhe88楼主2024/8/30 20:38
#include<bits/stdc++.h>
using namespace std;
string op[1001],ae[1001],z[1001],e[1001];
int d=1;
int Server(string ad){
	int a=0,b=0,sum=0;
	for(int i=d-1;i>0;i--){
		if(z[i]==ad){
			cout<<"FAIL"<<endl;
				return 0;
		}
	}
	z[d]=ad;
	d++;
	for(int i=0;i<ad.size();i++){
		if(ad[i]<='9'&&ad[i]>='0'){
			sum=sum*10+ad[i]-'0';
		}
		if(ad[i]=='.'){
			a++;
			if(0<=sum&&sum<=255){
				sum=0;
			}else{
				cout<<"ERR"<<endl;
					return 0;
			}
		}
		if(ad[i]==':'&&a==3){
			if(0<=sum&&sum<=255){
							sum=0;
						}else{
							cout<<"ERR"<<endl;
								return 0;
						}
			b++;
		}
		if(ad[i]=='0'&&(ad[i+1]>='0'&&ad[i+1]<='9')&&(ad[i-1]=='0')){
			cout<<"ERR"<<endl;
				return 0;
		}
	}
	if(a==3&&b==1&&sum<=65535&&sum>=0){
		cout<<"OK"<<endl;
			return 0;
	}else{
		cout<<"ERR"<<endl;
			return 0;
	}
	return 0;
}
int Client(string ad){
	int a=0,b=0,sum=0;
		for(int i=0;i<ad.size();i++){
			if(ad[i]<='9'&&ad[i]>='0'){
				sum=sum*10+ad[i]-'0';
			}
			if(ad[i]=='.'){
				a++;
				if(0<=sum&&sum<=255){
					sum=0;
				}else{
					cout<<"ERR"<<endl;
					return 0;
				}
			}
			if(ad[i]==':'&&a==3){
				if(0<=sum&&sum<=255){
								sum=0;
							}else{
								cout<<"ERR"<<endl;
									return 0;
							}
				b++;
			}
			if(ad[i]=='0'&&(ad[i+1]>='0'&&ad[i+1]<='9')&&(ad[i-1]=='0')){
				cout<<"ERR"<<endl;
					return 0;
			}
		}
		if(a==3&&b==1&&sum<=65535&&sum>=0){
			for(int i=0;i<=d;i++){
				if(ad==ae[i]&&op[i]=="Server"){
					cout<<i+1<<endl;
					return 0;
				}
			}
			cout<<"FAIL"<<endl;
			return 0;
		
		}else{
			cout<<"ERR"<<endl;
			return 0;
		
		}
		return 0;
}
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>op[i]>>ae[i];
	}
	for(int i=0;i<n;i++){
		if(op[i]=="Server"){
			Server(ae[i]);
		}
		if(op[i]=="Client"){
			Client(ae[i]);
		}
	}
}
2024/8/30 20:38
加载中...