6719 2023. 12. 17 20:10:16 111 Tom és Jerry 3 cpp17 Hibás válasz 6/50 108ms 9264 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define double long double

#define pii pair<int, int>

signed main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
#ifdef CB
	freopen("be2.txt", "r", stdin);
//	freopen("out.txt", "w", stdout);
#endif
	int T;
	cin >> T;
	while (T--) {
		int N, TS, JS, K;
		cin >> N >> TS >> JS >> K;
		vector<vector<int>> g(N + 1);
		for (int i = 0; i < N - 1; i++) {
			int a, b;
			cin >> a >> b;
			g[a].push_back(b);
			g[b].push_back(a);
		}
		deque<int> q;
		vector<int> td(N + 1, -1);
		td[TS] = 0;
		q.push_back(TS);
		while (!q.empty()) {
			int i = q.front();
			q.pop_front();
			for (int j : g[i]) {
				if (td[j] == -1) {
					td[j] = td[i] + 1;
					q.push_back(j);
				}
			}
		}
		vector<int> jd(N + 1, -1);
		jd[JS] = 0;
		q.push_back(JS);
		while (!q.empty()) {
			int i = q.front();
			q.pop_front();
			for (int j : g[i]) {
				if (jd[j] == -1) {
					jd[j] = jd[i] + 1;
					q.push_back(j);
				}
			}
		}
		int s = 0;
		for (int i = 1; i <= N; i++) {
			if (jd[i] < td[i] + 1) {
				s = max(s, td[i]);
			}
		}
		if (s <= K + 1) {
			cout << "IGEN" << '\n';
			continue;
		}
		auto solve = [&](int i) {
			vector<int> v(N + 1, -1);
			deque<int> q;
			q.push_back(i);
			v[i] = 0;
			int f;
			while (!q.empty()) {
				int j = f = q.front();
				q.pop_front();
				for (int k : g[j]) {
					if (v[k] == -1) {
						v[k] = v[j] + 1;
						q.push_back(k);
					}
				}
			}
			return pii{f, v[f]};
		};
		auto [a, b] = solve(1);
		auto [c, d] = solve(a);
		if ((d + 1) / 2 <= K) {
			cout << "IGEN" << '\n';
			continue;
		}
		cout << "NEM" << '\n';
	}
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 6/50
1 Elfogadva 0/0 3ms 1832 KiB
2 Elfogadva 0/0 3ms 2024 KiB
3 Hibás válasz 0/5 3ms 2232 KiB
4 Hibás válasz 0/1 3ms 2752 KiB
5 Hibás válasz 0/1 4ms 2880 KiB
6 Hibás válasz 0/1 3ms 2924 KiB
7 Hibás válasz 0/1 4ms 3144 KiB
8 Hibás válasz 0/1 4ms 3236 KiB
9 Hibás válasz 0/1 3ms 3436 KiB
10 Hibás válasz 0/1 3ms 3496 KiB
11 Hibás válasz 0/2 4ms 3688 KiB
12 Hibás válasz 0/2 3ms 3776 KiB
13 Hibás válasz 0/1 3ms 3776 KiB
14 Hibás válasz 0/2 108ms 7348 KiB
15 Hibás válasz 0/2 93ms 5844 KiB
16 Hibás válasz 0/2 103ms 7948 KiB
17 Hibás válasz 0/2 97ms 9264 KiB
18 Elfogadva 2/2 107ms 7656 KiB
19 Elfogadva 2/2 105ms 7724 KiB
20 Elfogadva 2/2 65ms 9204 KiB
21 Hibás válasz 0/2 93ms 6204 KiB
22 Hibás válasz 0/2 96ms 6296 KiB
23 Hibás válasz 0/3 92ms 8904 KiB
24 Hibás válasz 0/2 103ms 8040 KiB
25 Hibás válasz 0/3 104ms 7868 KiB
26 Hibás válasz 0/2 94ms 9196 KiB
27 Hibás válasz 0/2 97ms 6288 KiB
28 Hibás válasz 0/3 98ms 6192 KiB