1375 | 2022. 08. 28 13:03:04 | csandras | Tom és Jerry 3 | cpp11 | Elfogadva 50/50 | 207ms | 10764 KiB |
#include <bits/stdc++.h>
using namespace std;
using Graph = vector<vector<int>>;
void dfs(int p, const Graph& G, vector<int>& dist, vector<bool>& visited)
{
visited[p] = true;
for (int q : G[p])
{
if (!visited[q])
{
dist[q] = dist[p] + 1;
dfs(q, G, dist, visited);
}
}
}
vector<int> distances_from(int start, const Graph& G)
{
vector<int> dist(G.size(), -1);
dist[start] = 0;
vector<bool> visited(G.size(), false);
dfs(start, G, dist, visited);
return dist;
}
int diameter(const Graph& G)
{
vector<int> dist = distances_from(0, G);
int start = max_element(dist.begin(), dist.end()) - dist.begin();
vector<int> dist2 = distances_from(start, G);
return *max_element(dist2.begin(), dist2.end());
}
bool can_caught_in_K_step(const Graph& G, int TS, int JS, int K)
{
vector<int> dist_T = distances_from(TS, G);
vector<int> dist_J = distances_from(JS, G);
for (int i = 0; i < G.size(); ++i)
{
if (dist_J[i]+1 < dist_T[i] && dist_T[i] > K)
{
return false;
}
}
return true;
}
int main()
{
int T;
cin >> T;
while (T--)
{
int N, TS, JS, K;
cin >> N >> TS >> JS >> K;
--TS, --JS;
vector<vector<int>> G(N);
for (int i = 0; i < N-1; ++i)
{
int u, v;
cin >> u >> v;
--u, --v;
G[u].push_back(v);
G[v].push_back(u);
}
if (diameter(G) <= 2*K || can_caught_in_K_step(G, TS, JS, K))
{
cout << "IGEN\n";
}
else
{
cout << "NEM\n";
}
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1812 KiB | |||
2 | Elfogadva | 0/0 | 2ms | 2060 KiB | |||
3 | Elfogadva | 5/5 | 2ms | 2256 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2512 KiB | |||
5 | Elfogadva | 1/1 | 4ms | 2712 KiB | |||
6 | Elfogadva | 1/1 | 4ms | 2920 KiB | |||
7 | Elfogadva | 1/1 | 4ms | 3120 KiB | |||
8 | Elfogadva | 1/1 | 3ms | 3276 KiB | |||
9 | Elfogadva | 1/1 | 4ms | 3440 KiB | |||
10 | Elfogadva | 1/1 | 3ms | 3376 KiB | |||
11 | Elfogadva | 2/2 | 3ms | 3412 KiB | |||
12 | Elfogadva | 2/2 | 4ms | 3404 KiB | |||
13 | Elfogadva | 1/1 | 4ms | 3388 KiB | |||
14 | Elfogadva | 2/2 | 196ms | 6040 KiB | |||
15 | Elfogadva | 2/2 | 165ms | 4792 KiB | |||
16 | Elfogadva | 2/2 | 184ms | 6300 KiB | |||
17 | Elfogadva | 2/2 | 175ms | 7652 KiB | |||
18 | Elfogadva | 2/2 | 207ms | 6392 KiB | |||
19 | Elfogadva | 2/2 | 172ms | 6608 KiB | |||
20 | Elfogadva | 2/2 | 119ms | 10764 KiB | |||
21 | Elfogadva | 2/2 | 168ms | 5668 KiB | |||
22 | Elfogadva | 2/2 | 162ms | 5552 KiB | |||
23 | Elfogadva | 3/3 | 189ms | 8656 KiB | |||
24 | Elfogadva | 2/2 | 196ms | 7044 KiB | |||
25 | Elfogadva | 3/3 | 189ms | 7016 KiB | |||
26 | Elfogadva | 2/2 | 190ms | 8848 KiB | |||
27 | Elfogadva | 2/2 | 180ms | 5760 KiB | |||
28 | Elfogadva | 3/3 | 174ms | 5888 KiB |