65求调
查看原帖
65求调
1474986
Im_ZJ_zip楼主2024/10/25 16:44
#include<bits/stdc++.h>
using namespace std;
bool check(char s[]){
	int a=-1,b=-1,c=-1,d=-1,e=-1;
	int t=sscanf(s,"%d.%d.%d.%d:%d",&a,&b,&c,&d,&e);
	if(t!=5) return 0;
	if(a<0||a>255) return 0;
	if(b<0||b>255) return 0;
	if(c<0||c>255) return 0;
	if(d<0||d>255) return 0;
	if(e<0||e>65535) return 0;
	char s2[35];
	sprintf(s2,"%d.%d.%d.%d:%d",a,b,c,d,e);
	int lens=strlen(s);
	bool ok=0;
	for(int i=0;i<lens;i++){
		if(s[i]==s2[i]) ok=1;
		else{
			ok=0;
			break;
		}
	}
	return true;
}
int main(){
	string s;
	char ip[1145];
	map<string,int> q,w;
	int n,x=0;
	cin>>n;
	for(int i=1;i<=n;i++){
		x++;
		cin>>s>>ip;
		if(check(ip)){
			if(s=="Server" && q[ip]==0){
				w[ip]=x;
				q[ip]++;
				cout<<"OK\n";
			}else if(s=="Client" && q[ip]==1){
				cout<<w[ip]<<"\n";
			}else{
				cout<<"FAIL\n";
			}
		}else{
			cout<<"ERR\n";
		}
	}
	return 0;
}
2024/10/25 16:44
加载中...