220462026-01-14 15:00:56hunzombiTom és Jerry 1 (80)cpp17Elfogadva 80/8050ms4396 KiB
#include <bits/stdc++.h>
#define PB push_back

using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;

const int INF = 1e9;

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);

    int n, m, t, p, e;
    cin >> n >> m >> t >> p >> e;

    vector<vector<pii>> adj(n + 1);

    for (int i=1; i <= m; i++) {
        int u, v, c;
        cin >> u >> v >> c;

        adj[u].PB({v, c});
        adj[v].PB({u, c});
    }

    vi qu(p);
    for (int &x : qu) cin >> x;

    vi dt(n + 1, -1);
    queue<int> q;
    dt[t] = 0;
    q.push(t);

    while (!q.empty()) {
        int x = q.front(); q.pop();
        for (pii ne : adj[x]) {
            if (ne.second == 2 && dt[ne.first] == -1) {
                dt[ne.first] = dt[x] + 1;
                q.push(ne.first);
            }
        }
    }

    vi lastSafeTime(n + 1, -1);

    lastSafeTime[e] = min(INF, dt[e]);

    priority_queue<pii> pq;
    lastSafeTime[e] = (dt[e] == -1) ? INF : dt[e] - 1;
    if (lastSafeTime[e] >= 0) {
        pq.push({lastSafeTime[e], e});
    }

    while (!pq.empty()) {
        int curr_time = pq.top().first, u = pq.top().second; pq.pop();
        if (curr_time < lastSafeTime[u]) continue;

        for (pii ne : adj[u]) {
            int next = ne.first;
            int new_time = curr_time - 1;
            if (dt[next] == -1) {
                new_time = min(new_time, INF);
            } else {
                new_time = min(new_time, dt[next] - 1);
            }
            if (new_time > lastSafeTime[next]) {
                lastSafeTime[next] = new_time;
                pq.push({new_time, next});
            }
        }
    }

    for (int q : qu) cout << ((lastSafeTime[q] < 0) ? "NEM" : "IGEN") << '\n';

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base80/80
1Elfogadva0/01ms316 KiB
2Elfogadva0/02ms508 KiB
3Elfogadva4/41ms316 KiB
4Elfogadva4/41ms512 KiB
5Elfogadva4/41ms316 KiB
6Elfogadva4/41ms316 KiB
7Elfogadva4/41ms316 KiB
8Elfogadva4/42ms316 KiB
9Elfogadva4/42ms500 KiB
10Elfogadva4/42ms564 KiB
11Elfogadva4/44ms820 KiB
12Elfogadva4/46ms1132 KiB
13Elfogadva4/412ms1356 KiB
14Elfogadva4/424ms2408 KiB
15Elfogadva4/432ms2908 KiB
16Elfogadva4/432ms4036 KiB
17Elfogadva4/445ms4160 KiB
18Elfogadva4/435ms3124 KiB
19Elfogadva4/435ms3560 KiB
20Elfogadva4/432ms3380 KiB
21Elfogadva4/426ms3068 KiB
22Elfogadva4/450ms4396 KiB