234942026-01-23 19:32:16zsomborTom és Jerry 1 (80)cpp17Elfogadva 80/8064ms14644 KiB
#include <iostream>
#include <vector>
#include <queue>
using namespace std;

int n, m, t, p, e, a, b, s;
vector <vector <int>> g(2e5);
vector <vector <int>> g2(2e5);
vector <int> dt(2e5, 1e9);
vector <int> v(2e5, 0);
vector <bool> done(2e5, false);
queue <int> q;
priority_queue <pair <int, int>> pq;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cin >> n >> m >> t >> p >> e;
	for (int i = 0; i < m; i++) {
		cin >> a >> b >> s;
		g[a].push_back(b);
		g[b].push_back(a);
		if (s == 1) continue;
		g2[a].push_back(b);
		g2[b].push_back(a);
	}

	dt[t] = 0;
	q.push(t);
	while (q.size()) {
		a = q.front();
		q.pop();
		for (int i : g2[a]) {
			if (dt[i] < n) continue;
			dt[i] = dt[a] + 1;
			q.push(i);
		}
	}

	v[e] = dt[e];
	pq.push({ v[e], e });
	while (pq.size()) {
		a = pq.top().second;
		pq.pop();
		if (done[a]) continue;
		done[a] = true;
		for (int i : g[a]) {
			s = min(v[a] - 1, dt[i]);
			if (s > v[i]) pq.push({ v[i] = s, i });
		}
	}

	while (p--) {
		cin >> a;
		cout << (v[a] ? "IGEN\n" : "NEM\n");
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base80/80
1Elfogadva0/012ms11316 KiB
2Elfogadva0/010ms11316 KiB
3Elfogadva4/49ms11316 KiB
4Elfogadva4/49ms11316 KiB
5Elfogadva4/412ms11224 KiB
6Elfogadva4/412ms11280 KiB
7Elfogadva4/410ms11316 KiB
8Elfogadva4/410ms11364 KiB
9Elfogadva4/412ms11664 KiB
10Elfogadva4/414ms11316 KiB
11Elfogadva4/417ms11576 KiB
12Elfogadva4/416ms11828 KiB
13Elfogadva4/421ms12088 KiB
14Elfogadva4/435ms13032 KiB
15Elfogadva4/448ms13196 KiB
16Elfogadva4/459ms13988 KiB
17Elfogadva4/464ms14644 KiB
18Elfogadva4/448ms13508 KiB
19Elfogadva4/463ms14596 KiB
20Elfogadva4/457ms13792 KiB
21Elfogadva4/439ms13876 KiB
22Elfogadva4/464ms14644 KiB