241402026-02-04 19:22:56xxxTom és Jerry 1 (80)cpp17Hibás válasz 4/80115ms6976 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long


signed main() {
    int n, m, t, p, e;
    cin >> n >> m >> t >> p >> e;
    vector<vector<array<int, 2> > > adj(n+1);
    for(int i = 1; i <= m; i++) {
        int x, y, z;
        cin >> x >> y >> z;
        adj[x].push_back({y, z});
        adj[y].push_back({x, z});
    }
    const int hm = 1000000000000000;
    vector<int> dist(n+1, hm), dist2(n+1, -hm), dist3(n+1, hm);

    queue<int> q;
    q.push(t);
    dist[t] = 0;

    while(!q.empty()) {
        int v = q.front();
        q.pop();

        for(auto [u, z] : adj[v]) {
            if (z == 2 && dist[u] == hm) {
                dist[u] = dist[v] + 1;
                q.push(u);
            }
        }
    }

    q.push(e);
    dist2[e] = dist[e];

    while(!q.empty()) {
        int v = q.front();
        q.pop();
        if (dist[v] != hm) {
            if (dist2[v] < hm/10) dist2[v] = max(dist2[v], dist[v]);
            else dist2[v] = dist[v];
        }

        for(auto [u, z] : adj[v]) {

            if(dist2[u] < dist2[v] - 1) {
                dist2[u] = dist2[v] - 1;
                q.push(u);
            }



        }
    }

    for(int i = 1; i <= p; i++) {
        int x;
        cin >> x;
        cout << (dist2[x] > 0 ? "IGEN" : "NEM" ) << '\n';
    }



}

/*
9 11 6 3 1
1 2 1
1 3 1
2 4 1
3 4 2
3 5 2
4 7 1
3 5 2
5 6 2
6 8 1
7 9 1
8 9 1
7
8
9
*/

RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/80
1Elfogadva0/01ms316 KiB
2Hibás válasz0/03ms584 KiB
3Hibás válasz0/41ms316 KiB
4Hibás válasz0/41ms316 KiB
5Hibás válasz0/41ms316 KiB
6Hibás válasz0/41ms316 KiB
7Hibás válasz0/41ms316 KiB
8Hibás válasz0/42ms316 KiB
9Hibás válasz0/43ms344 KiB
10Hibás válasz0/43ms564 KiB
11Hibás válasz0/49ms820 KiB
12Elfogadva4/412ms1496 KiB
13Hibás válasz0/421ms1952 KiB
14Hibás válasz0/445ms3440 KiB
15Hibás válasz0/465ms4404 KiB
16Hibás válasz0/464ms5608 KiB
17Hibás válasz0/4101ms6476 KiB
18Hibás válasz0/464ms4732 KiB
19Hibás válasz0/481ms4916 KiB
20Hibás válasz0/479ms4680 KiB
21Hibás válasz0/471ms4132 KiB
22Hibás válasz0/4115ms6976 KiB