1870 2022. 12. 06 20:15:07 kovacs.peter.18f Tom és Jerry 1 (80) cpp11 Elfogadva 80/80 52ms 11800 KiB
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>

using namespace std;

int main() {
    cin.sync_with_stdio(false);
    cin.tie(nullptr);

    int N, M, T, P, E;
    cin >> N >> M >> T >> P >> E;
    vector<vector<pair<int, int>>> neighbourS(N); // node, weihgt
    while (M--) {
        int A, B, S;
        cin >> A >> B >> S;
        --A;
        --B;
        neighbourS[A].push_back({ B, S });
        neighbourS[B].push_back({ A, S });
    }
    --T;
    --E;
    // szélességi bejárás Tomra
    vector<int> t_distS(N, -1); // push in pqS, if has -2 distance neihbour
    queue<int> currentS;
    t_distS[T] = 0;
    currentS.push(T);
    while (!currentS.empty()) {
        int c = currentS.front();
        currentS.pop();
        for (auto e : neighbourS[c]) {
            if (e.second == 2 && t_distS[e.first] == -1) {
                t_distS[e.first] = t_distS[c] + 1;
                currentS.push(e.first);
            }
        }
    }
    vector<int> e_distS(N, -1);
    if (t_distS[E] == -1) {
        e_distS[E] = 100000;
    }
    priority_queue<pair<int, int>> pqS; // distance, node
    pqS.push({ e_distS[E], E });
    while (!pqS.empty()) {
        pair<int, int> c = pqS.top();
        pqS.pop();
        for (auto e : neighbourS[c.second]) {
            if (e_distS[e.first] == -1) {
                int d = c.first ? c.first - 1 : 0;
                e_distS[e.first] = t_distS[e.first] == -1 ? d : min(d, t_distS[e.first]);
                pqS.push({ e_distS[e.first], e.first });
            }
        }
    }
    while (P--) {
        int K;
        cin >> K;
        --K;
        cout << (e_distS[K] ? "IGEN\n" : "NEM\n");
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 80/80
1 Elfogadva 0/0 3ms 2112 KiB
2 Elfogadva 0/0 3ms 2456 KiB
3 Elfogadva 4/4 2ms 2392 KiB
4 Elfogadva 4/4 2ms 2552 KiB
5 Elfogadva 4/4 2ms 2632 KiB
6 Elfogadva 4/4 2ms 2652 KiB
7 Elfogadva 4/4 2ms 2852 KiB
8 Elfogadva 4/4 3ms 3120 KiB
9 Elfogadva 4/4 3ms 3264 KiB
10 Elfogadva 4/4 3ms 3508 KiB
11 Elfogadva 4/4 6ms 4116 KiB
12 Elfogadva 4/4 8ms 5004 KiB
13 Elfogadva 4/4 13ms 5596 KiB
14 Elfogadva 4/4 24ms 7740 KiB
15 Elfogadva 4/4 32ms 8824 KiB
16 Elfogadva 4/4 39ms 10804 KiB
17 Elfogadva 4/4 50ms 11156 KiB
18 Elfogadva 4/4 34ms 9332 KiB
19 Elfogadva 4/4 37ms 9728 KiB
20 Elfogadva 4/4 37ms 9716 KiB
21 Elfogadva 4/4 30ms 8612 KiB
22 Elfogadva 4/4 52ms 11800 KiB