0分WA Why
查看原帖
0分WA Why
1426323
woshizhangchi123楼主2025/1/30 12:50

求调:

#include <bits/stdc++.h>
#pragma GCC optimeze(2)
#define N 110000
#define pii pair<int,string>
#define int long long
using namespace std;
pii ser[N];
pair<string,string> cil[N];
bool Check(string s) {
  long long a, b, c, d, port;
  if (sscanf(s.c_str(), "%lld.%lld.%lld.%lld:%lld", &a, &b, &c, &d, &port) != 5)  return false;
  if (a < 0 || a > 255 || b < 0 || b > 255 || c < 0 || c > 255 || d < 0 || d > 255 || port < 0 || port > 65535)  return false;
  stringstream ss;
  ss << a << '.' << b << '.' << c << '.' << d << ':' << port;
  return ss.str() == s;
}
signed main() {
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	int n;
	cin>>n;
	int sn=0;
	int st=0;
	for(int i=1;i<=n;i++){
		string s1,s2;
		cin>>s1>>s2;
		st++;
		if(!Check(s2)){
			cout<<"ERR\n";
			continue;
		}
		if(s1=="Server"){
			int flag=0;
			for(int i=1;i<=sn;i++){
				if(ser[i].second==s2)flag=1;
			}
			if(flag==1)cout<<"FAIL\n";
			if(flag==0){
				cout<<"OK\n";
				sn++;
				ser[sn].first=st;
				ser[sn].second=s2;
			}
		}
		else if(s1=="Client"){
			int flag=0;
			int idx=0;
			for(int i=1;i<=sn;i++){
				if(ser[sn].second==s2){
					idx=ser[sn].first;
					flag=1;
					break;
				}
			}
			if(flag==1)cout<<idx<<"\n";
			if(flag==0) cout<<"FAIL\n";
		}
	}
	return 0;
}

2025/1/30 12:50
加载中...