⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 4110483_ac_16ms_228k.cpp

📁 北大大牛代码 1240道题的原代码 超级权威
💻 CPP
字号:
#include <stdio.h>
#include <map>
#include <algorithm>

using namespace std;

map <int, int> h;

struct node
{
	int id;
	int id1, id2;
	int r1, r2;
}man[101];

int n;

int main()
{
	int t, i, j;
	int a, b, d, A, B, D;
	char c[2], e[2];
	int ans;

	scanf("%d", &t);
	while (t--)
	{
		scanf("%d", &n);
		h.clear();
		int cnt = 1;
		for (i = 0; i < n; i++)
		{
			scanf("%d%d%s%d%s", &a, &b, c, &d, e);
			if (h[a] == 0)	h[a] = cnt++;
			if (h[b] == 0)	h[b] = cnt++;
			if (h[d] == 0)	h[d] = cnt++;
			A = h[a];B = h[b];D = h[d];
			man[A].id = a;
			man[B].id = b;
			man[D].id = d;
			man[A].id1 = B;
			man[A].id2 = D;
			man[A].r1 = (c[0] == 'Y');
			man[A].r2 = (e[0] == 'Y');
		}
		int c = 0;
		int id;
		for (i = 1; c < 2 && i <= cnt; i++)
		{
			for (j = 1; j < cnt; j++)
			{
				if (i == j)
					continue;
				if ((man[j].r1 == 1 && man[j].id1 == i) || (man[j].r2 == 1 && man[j].id2 == i))
					break;
				if ((man[j].r1 == 0 && man[j].id1 != i) || (man[j].r2 == 0 && man[j].id2 != i))
					break;
			}
			if (j == cnt)
			{
				id = man[i].id;
				c++;
			}
		}
		if (c == 1)
			printf("%d\n", id);
		else
			puts("impossible");
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -