220432026-01-14 14:44:59hunzombiTom és Jerry 1 (80)cpp17Hibás válasz 0/8056ms4408 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, INF);
    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] == INF) {
                dt[ne.first] = dt[x] + 1;
                q.push(ne.first);
            }
        }
    }

    vi lastSafeTime(n + 1, -1);
    vector<bool> safe(n + 1, false);

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

    priority_queue<pii> pq;
    pq.push({lastSafeTime[e], e});

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

        for (pii& ne : adj[x]) {
            int k = ne.first;
            int new_time = min(dt[k], curr_time - 1);
            if (new_time > lastSafeTime[k]) {
                lastSafeTime[k] = new_time;
                pq.push({new_time, k});
            }
        }
    }
    for (int q : qu) cout << ((lastSafeTime[q]) ? "IGEN" : "NEM") << '\n';

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/80
1Elfogadva0/01ms492 KiB
2Hibás válasz0/02ms508 KiB
3Hibás válasz0/41ms316 KiB
4Hibás válasz0/41ms512 KiB
5Hibás válasz0/41ms316 KiB
6Hibás válasz0/41ms336 KiB
7Hibás válasz0/41ms316 KiB
8Hibás válasz0/42ms336 KiB
9Hibás válasz0/43ms316 KiB
10Hibás válasz0/43ms564 KiB
11Hibás válasz0/46ms792 KiB
12Hibás válasz0/47ms1076 KiB
13Hibás válasz0/412ms1332 KiB
14Hibás válasz0/425ms2452 KiB
15Hibás válasz0/432ms2948 KiB
16Hibás válasz0/435ms3984 KiB
17Hibás válasz0/456ms4096 KiB
18Hibás válasz0/437ms3264 KiB
19Hibás válasz0/437ms3636 KiB
20Hibás válasz0/435ms3520 KiB
21Hibás válasz0/428ms2948 KiB
22Hibás válasz0/448ms4408 KiB