求调
查看原帖
求调
788424
evil_paramecium楼主2024/10/5 08:41
#include<bits/stdc++.h>
using namespace std;
long long n,booktap=0;
string op;
string book[1010];
int bookh[1010];
bool pd(){
	//booktap
	long long tap=book[booktap].size()-1,dian=0,fen=0;
	bool qq=0;
	for(int i=0;i<=tap;i++){
		if(book[booktap][i]=='.') dian++;
		else if(book[booktap][i]!='1' and book[booktap][i]!='2' and book[booktap][i]!='3' and book[booktap][i]!='4' and book[booktap][i]!='5' and book[booktap][i]!='6' and book[booktap][i]!='7' and book[booktap][i]!='8' and book[booktap][i]!='9' and book[booktap][i]!='0'){
			if(book[booktap][i]==':') fen++;
			else {
				qq=1;
				
				break;
			}
		}
	}
	if(qq==1) return false;
	if(dian!=4 or fen!=1) return false;
	if(tap+1>21) return false;
	bool fenf=1;
	int i;
	for(i=0;i<=tap;){
		int j=0;
		long long xzd=0;
		while(book[booktap][i+j]!='.'){
			if(book[booktap][i+j]==':') {
				fenf=0;
				break;
			}
			if(j==0 and book[booktap][i+j]=='0'){
				qq=0;
				break;
			}
			xzd=xzd*10+book[booktap][i+j]-48;
			if(xzd>255){
				qq=0;
				break;
			}
			j++;
		}
		if(qq==0){
			break;
		}
		i+=(j+1);
		if(fenf==0){
			break;
		}
		
	}

	if(fenf==0){
		long long kkkk=0;
		while(i<=tap){
			kkkk=kkkk*10+book[booktap][i]-48;
			if(kkkk>65535){
				qq=0;
				break;
			}
			i++;
		}
	}
	if(qq==0) return false;
	return true;
}
void server(int h){
	booktap++;
	cin>>book[booktap];
	bookh[booktap]=h;
	for(int i=1;i<booktap;i++){
		if(book[i]==book[booktap]){
			booktap--;
			cout<<"FAIL"<<endl;
			return;
		}
	}
	if(pd()){
		cout<<"OK"<<endl;
	}
	else{
		booktap--;
		cout<<"ERR";
	}
}
void client(){
	string ad;
	cin>>ad;
	for(int i=1;i<=booktap;i++){
		if(book[i]==ad){
			cout<<bookh[i]<<endl;
		}
	}
}
int main(){
	freopen("netbook.in","r",stdin);
	freopen("netbook.out","w",stdout);	
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>op;
		if(op=="Server") server(i);
		else client();
	}
	return 0;
}
2024/10/5 08:41
加载中...