7367 2024. 01. 08 11:32:39 tamasmark Tom és Jerry 1 (80) cpp17 Hibás válasz 60/80 122ms 16116 KiB
#include <iostream>
#include <vector>
#include <queue>
#include <deque>
#include<algorithm>
#include <climits>
using namespace std;
#define pii pair<int, int>
#define fi first
#define se second

vector<vector<int> > gj, gt;
vector<int> dt;
vector<bool> vis;

void tom(int start) {
    queue<int> q;
    q.push(start);
    dt[start] = 0;
    while (!q.empty()) {
        int v = q.front();
        q.pop();
        for (int x : gt[v]) {
            if (dt[x] < INT_MAX / 2) continue;
            dt[x] = dt[v] + 1;
            q.push(x);
        }
    }
}

void jerry(int start) {
    deque<pii> q;
    q.push_back({ dt[start] - 1, start });
    while (!q.empty()) {
        pii v = q.front();
        q.pop_front();
        if (v.fi < 0) continue;
        vis[v.se] = true;
        for (int x : gj[v.se]) {
            if (vis[x]) continue;
            q.push_back({ min(dt[x] - 1, v.fi - 1), x });
        }
    }
}

int main()
{
    int n, m, t, p, j;
    cin >> n >> m >> t >> p >> j;
    gj.resize(n + 1);
    gt.resize(n + 1);
    dt.assign(n + 1, INT_MAX / 2);
    vis.assign(n + 1, false);
    while (m--) {
        int a, b, w;
        cin >> a >> b >> w;
        gj[a].push_back(b);
        gj[b].push_back(a);
        if (w == 2) {
            gt[a].push_back(b);
            gt[b].push_back(a);
        }
    }
    tom(t);
    jerry(j);
    while (p--) {
        int a;
        cin >> a;
        if (vis[a]) {
            cout << "IGEN\n";
        }
        else {
            cout << "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 Összpont Teszt Verdikt Idő Memória
base 60/80
1 Elfogadva 0/0 3ms 1808 KiB
2 Elfogadva 0/0 4ms 2416 KiB
3 Elfogadva 4/4 3ms 2252 KiB
4 Elfogadva 4/4 3ms 2368 KiB
5 Elfogadva 4/4 3ms 2504 KiB
6 Elfogadva 4/4 3ms 2704 KiB
7 Elfogadva 4/4 3ms 3060 KiB
8 Hibás válasz 0/4 4ms 3316 KiB
9 Hibás válasz 0/4 4ms 3416 KiB
10 Elfogadva 4/4 4ms 3564 KiB
11 Elfogadva 4/4 12ms 4252 KiB
12 Elfogadva 4/4 14ms 5072 KiB
13 Elfogadva 4/4 25ms 6124 KiB
14 Elfogadva 4/4 48ms 8864 KiB
15 Elfogadva 4/4 79ms 11244 KiB
16 Elfogadva 4/4 68ms 14016 KiB
17 Elfogadva 4/4 101ms 14196 KiB
18 Elfogadva 4/4 70ms 12052 KiB
19 Hibás válasz 0/4 75ms 13324 KiB
20 Hibás válasz 0/4 72ms 13188 KiB
21 Elfogadva 4/4 68ms 11236 KiB
22 Hibás válasz 0/4 122ms 16116 KiB