2190 | 2022. 12. 30 15:11:14 | 1478 | Tom és Jerry 1 (80) | cpp11 | Accepted 80/80 | 123ms | 16628 KiB |
#include <bits/stdc++.h>
using namespace std;
const int MINI = -300000;
int main()
{
//ifstream cin("be.txt");
int n, m, t, p, e;
cin >> n >> m >> t >> p >> e;
vector<vector<int>> jN(n + 1, vector<int>(1)), tN(n + 1, vector<int>(1));
for (int i = 1; i <= m; i++)
{
int k, v, s;
cin >> k >> v >> s;
if (s == 2)
{
tN[k].push_back(v);
tN[v].push_back(k);
}
jN[k].push_back(v);
jN[v].push_back(k);
}
/*
for (int i = 1; i <= n; i++)
{
cout << i << ": " << '\n';
for (int j = 1; j < tN[i].size(); j++)
{
cout << tN[i][j] << " ";
}
cout << '\n';
}
*/
vector<int> tD(n + 1, MINI);
queue<int> q;
q.push(t);
tD[t] = 0;
while (!q.empty())
{
int a = q.front();
q.pop();
for (int i = 1; i < tN[a].size(); i++)
{
if (tD[tN[a][i]] == MINI)
{
tD[tN[a][i]] = tD[a] + 1;
q.push(tN[a][i]);
}
}
}
/*
for (int i = 1; i <= n; i++)
{
cout << tD[i] << " ";
}
*/
vector<int> jD(n + 1, MINI);
priority_queue<pair<int, int>> pq;
if (tD[e] == MINI)
{
jD[e] = INT_MAX;
}
pq.push({jD[e], e});
while (!pq.empty())
{
pair<int, int> a = pq.top();
pq.pop();
for (int i = 1; i < jN[a.second].size(); i++)
{
if (jD[jN[a.second][i]] == MINI)
{
jD[jN[a.second][i]] = jD[a.second] - 1;
if (tD[jN[a.second][i]] != MINI)
{
jD[jN[a.second][i]] = min(jD[jN[a.second][i]], tD[jN[a.second][i]] - 1);
}
pq.push({jD[jN[a.second][i]], jN[a.second][i]});
}
}
}
while (p--)
{
int a;
cin >> a;
if (jD[a] >= 0)
{
cout << "IGEN" << '\n';
}
else
{
cout << "NEM" << '\n';
}
}
return 0;
}
Subtask | Sum | Test | Verdict | Time | Memory | ||
---|---|---|---|---|---|---|---|
base | 80/80 | ||||||
1 | Accepted | 0/0 | 3ms | 1808 KiB | |||
2 | Accepted | 0/0 | 4ms | 2488 KiB | |||
3 | Accepted | 4/4 | 2ms | 2376 KiB | |||
4 | Accepted | 4/4 | 2ms | 2284 KiB | |||
5 | Accepted | 4/4 | 2ms | 2672 KiB | |||
6 | Accepted | 4/4 | 2ms | 2756 KiB | |||
7 | Accepted | 4/4 | 3ms | 2696 KiB | |||
8 | Accepted | 4/4 | 4ms | 2948 KiB | |||
9 | Accepted | 4/4 | 4ms | 3160 KiB | |||
10 | Accepted | 4/4 | 4ms | 3468 KiB | |||
11 | Accepted | 4/4 | 10ms | 4172 KiB | |||
12 | Accepted | 4/4 | 16ms | 5692 KiB | |||
13 | Accepted | 4/4 | 26ms | 6532 KiB | |||
14 | Accepted | 4/4 | 52ms | 10172 KiB | |||
15 | Accepted | 4/4 | 71ms | 10800 KiB | |||
16 | Accepted | 4/4 | 87ms | 16628 KiB | |||
17 | Accepted | 4/4 | 112ms | 14704 KiB | |||
18 | Accepted | 4/4 | 74ms | 12632 KiB | |||
19 | Accepted | 4/4 | 90ms | 14380 KiB | |||
20 | Accepted | 4/4 | 86ms | 14416 KiB | |||
21 | Accepted | 4/4 | 78ms | 12280 KiB | |||
22 | Accepted | 4/4 | 123ms | 15356 KiB |