7841 | 2024. 01. 11 12:57:49 | renn | Tom és Jerry 1 (80) | cpp17 | Időlimit túllépés 64/80 | 569ms | 62628 KiB |
#include <bits/stdc++.h>
#define GOTTAGOFAST cin.tie(0); ios::sync_with_stdio(0);
using namespace std;
typedef vector<vector<int>> adj;
queue<int> nex;
stack<int> path;
inline void tombejar(adj &tom, vector<int> &tomtav, int &t)
{
nex.push(t);
tomtav[t] = 0;
while(!nex.empty())
{
int& curr = nex.front();
for(auto &x : tom[curr])
{
if(tomtav[x] > tomtav[curr]+1)
{
nex.push(x);
tomtav[x] = tomtav[curr]+1;
}
}
nex.pop();
}
}
inline bool jerrybejar(adj &jerry, vector<int> &tomtav, vector<int> &jerrytav, vector<int> &parents, vector<bool> &tud, int &j, int &c)
{
nex = {};
fill(jerrytav.begin(), jerrytav.end(), 200000);
nex.push(j);
jerrytav[j] = 0;
parents[j] = -1;
int a;
while(!nex.empty())
{
int& curr = nex.front();
path.emplace(curr);
for(auto &x : jerry[curr])
{
if(jerrytav[x] > jerrytav[curr]+1 && jerrytav[curr]+1 < tomtav[x])
{
parents[x] = curr;
if(x == c)
{
a = x;
while(parents[a] != -1)
{
tud[a] = true;
a = parents[a];
}
return true;
}
nex.push(x);
jerrytav[x] = jerrytav[curr]+1;
}
}
nex.pop();
}
return false;
}
int main()
{
GOTTAGOFAST
int n, m, t, j, jp, e;
int a, b, s;
cin >> n >> m >> t >> jp >> e;
e--;
adj tom(n);
vector<int> tom_tav(n, 200000);
adj jerry(n);
vector<int> jerry_tav(n);
vector<int> parents(n);
vector<bool> tud(n, 0);
for(;m--;)
{
cin >> a >> b >> s;
a--;
b--;
jerry[a].push_back(b);
jerry[b].push_back(a);
if(s == 2)
{
tom[a].push_back(b);
tom[b].push_back(a);
}
}
tombejar(tom, tom_tav, (--t));
for(;jp--;)
{
cin >> j;
j--;
if(j == t)
{
cout << "NEM\n";
continue;
}
if(j == e || tud[j])
{
cout << "IGEN\n";
continue;
}
cout << (jerrybejar(jerry, tom_tav, jerry_tav, parents, tud, j, e) ? "IGEN\n" : "NEM\n");
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 64/80 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1824 KiB | |||
2 | Elfogadva | 0/0 | 4ms | 2464 KiB | |||
3 | Elfogadva | 4/4 | 3ms | 2228 KiB | |||
4 | Elfogadva | 4/4 | 3ms | 2444 KiB | |||
5 | Elfogadva | 4/4 | 3ms | 2552 KiB | |||
6 | Elfogadva | 4/4 | 3ms | 2668 KiB | |||
7 | Elfogadva | 4/4 | 3ms | 2804 KiB | |||
8 | Elfogadva | 4/4 | 4ms | 3048 KiB | |||
9 | Elfogadva | 4/4 | 4ms | 3176 KiB | |||
10 | Elfogadva | 4/4 | 4ms | 3588 KiB | |||
11 | Elfogadva | 4/4 | 7ms | 4016 KiB | |||
12 | Elfogadva | 4/4 | 10ms | 5424 KiB | |||
13 | Elfogadva | 4/4 | 14ms | 6080 KiB | |||
14 | Elfogadva | 4/4 | 28ms | 8892 KiB | |||
15 | Elfogadva | 4/4 | 35ms | 9104 KiB | |||
16 | Elfogadva | 4/4 | 46ms | 15596 KiB | |||
17 | Elfogadva | 4/4 | 68ms | 14320 KiB | |||
18 | Elfogadva | 4/4 | 37ms | 11756 KiB | |||
19 | Időlimit túllépés | 0/4 | 547ms | 62628 KiB | |||
20 | Időlimit túllépés | 0/4 | 527ms | 62604 KiB | |||
21 | Futási hiba | 0/4 | 414ms | 62368 KiB | |||
22 | Időlimit túllépés | 0/4 | 569ms | 27616 KiB |