75pts求助
查看原帖
75pts求助
505229
_2028_楼主2023/9/30 11:01
#include<bits/stdc++.h>
using namespace std;
int n;
string op[1010],ad[1010];
map<string,int> mp;
bool check(string s)
{
	int n = s.size();
	int num[15] = {};
	char zf[15] = {};
	int cnt = 1,cntc = 0;
	bool flag = 1;
	for(int i = 0;i < n;i++)
	{
		if(isdigit(s[i]))
		{
			if(s[i] == '0' && !isdigit(s[i+1])) flag = 0;
			if(s[i] == '0' && flag) return 0;
			else if(s[i] != '0') flag = 0;
			num[cnt] = num[cnt] * 10 + (s[i] - '0');
		}
		else 
		{
			cnt++;
			zf[cntc++] = s[i];
			flag = 1;
		}
	}
	for(int i = 1;i <= 4;i++)
		if(!(0 <= num[i] && num[i] <= 255))
			return 0;
	if(!(0 <= num[5] && num[5] <= 65535)) return 0;
	// for(int i = 1;i <= 5;i++)
	// 		cout << num[i] << " ";
	// cout << endl;
	int len = strlen(zf);
	if(len != 4) return 0;
	// for(int i = 0;i < len;i++)
	//		cout << zf[i] << " ";
	// cout << endl;
	if(zf[0] != '.' || zf[1] != '.' || zf[2] != '.' || zf[3] != ':') return 0;
	return 1;
}
int now = 0;
int main()
{
	scanf("%d",&n);
	for(int i = 1;i <= n;i++)
	{
		cin >> op[i] >> ad[i];
		if(!check(ad[i]))
		{
			cout << "ERR" << endl;
			continue;
		}
		if(op[i] == "Server")
		{
			if(mp[ad[i]])
			{
				cout << "FAIL" << endl;
				continue;
			}
			else
			{
				mp[ad[i]] = i;
				cout << "OK" << endl;
				continue;
			}
		}
		else
		{
			if(mp[ad[i]] == 0)
			{
				cout << "FAIL" << endl;
				continue;
			}
			else
			{
				cout << mp[ad[i]] << endl;
				continue;
			}
		}
	}
	return 0;
}

评测记录qwq

2023/9/30 11:01
加载中...