73672024-01-08 11:32:39tamasmarkTom és Jerry 1 (80)cpp17Hibás válasz 60/80122ms16116 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ÖsszpontTesztVerdiktIdőMemória
base60/80
1Elfogadva0/03ms1808 KiB
2Elfogadva0/04ms2416 KiB
3Elfogadva4/43ms2252 KiB
4Elfogadva4/43ms2368 KiB
5Elfogadva4/43ms2504 KiB
6Elfogadva4/43ms2704 KiB
7Elfogadva4/43ms3060 KiB
8Hibás válasz0/44ms3316 KiB
9Hibás válasz0/44ms3416 KiB
10Elfogadva4/44ms3564 KiB
11Elfogadva4/412ms4252 KiB
12Elfogadva4/414ms5072 KiB
13Elfogadva4/425ms6124 KiB
14Elfogadva4/448ms8864 KiB
15Elfogadva4/479ms11244 KiB
16Elfogadva4/468ms14016 KiB
17Elfogadva4/4101ms14196 KiB
18Elfogadva4/470ms12052 KiB
19Hibás válasz0/475ms13324 KiB
20Hibás válasz0/472ms13188 KiB
21Elfogadva4/468ms11236 KiB
22Hibás válasz0/4122ms16116 KiB