社区讨论

求助,具体思路参照第二篇题解

P7911[CSP-J 2021] 网络连接参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@lo10usnd
此快照首次捕获于
2023/10/22 13:22
2 年前
此快照最后确认于
2023/11/02 12:51
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
map<string , int>mp;
bool check(char p[])
{
	int a = -1 , b = -1 , c = -1 , d = -1 , e = -1;
	int n = sscanf(p , "%d.%d.%d.%d:%d" , &a , &b , &c , &d , &e);
	if(n != 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 > 255) return 0;
	char pp[110];
	sprintf(pp , "%d.%d.%d.%d:%d" , a , b , c , d , e);
	if (strcmp(pp , p) == 0)
	{
		return 1;
	}
	return 0;
}
int main(void)
{
	int T;
	scanf("%d" , &T);
	for (int i = 1 ; i <= T ; i++)
	{
		char op[110] , s[110];
		scanf("%s%s" , op , s);
		string t(s);
		if (op[0] == 'S')
		{
			if (check(s) == 0)
			{
				printf("ERR\n");
				continue;
			}
			else
			{
				if (mp.count(t) != 0)
				{
					printf("FAIL\n");
					continue;
				}
				else
				{
					printf("OK\n");
					mp[t] = i; 
					continue;
				}
			}
		}
		else
		{
			if (check(s) == 1) printf("ERR\n");
			else if(mp.count(t) == 0) printf("FAIL\n");
			else printf("%d\n" , mp[t]);
		}
	}
	return 0;
}

回复

0 条回复,欢迎继续交流。

正在加载回复...