176872025-09-13 10:52:58TakacsAndrasTom és Jerry 1 (80)cpp17Hibás válasz 60/80115ms6096 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
    int n,m,t,p,e; cin >> n >> m >> t >> p >> e;
    vector<vector<pair<int,int>>> g(n+1);
    for (int i = 0; i < m; i++) {
        int a,b,c; cin >> a >> b >> c;
        g[a].push_back({b,c});
        g[b].push_back({a,c});
    }
    vector<int> p1(p);
    for (int &x : p1) cin >> x;
    vector<int> d1(n+1,1e6);
    queue<int> q1;
    d1[t] = 0;
    q1.push(t);
    while (!q1.empty()) {
        int u = q1.front();
        q1.pop();
        for (auto x : g[u]) {
            if (x.second == 2 && d1[x.first] == 1e6) {
                d1[x.first] = d1[u]+1;
                q1.push(x.first);
            }
        }
    }
    queue<pair<int,int>> q2;
    q2.push({e,d1[e]});
    vector<bool> d2(n+1);
    while (!q2.empty()) {
        int u = q2.front().first, d = q2.front().second;
        q2.pop();
        if (d <= 0) continue;
        d2[u] = true;
        for (auto x : g[u]) {
            if (!d2[x.first]) q2.push({x.first,min(d-1,d1[x.first])});
        }
    }
    for (int x : p1) {
        if (d2[x]) cout << "IGEN\n";
        else cout << "NEM\n";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base60/80
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms316 KiB
3Elfogadva4/41ms332 KiB
4Elfogadva4/41ms316 KiB
5Elfogadva4/41ms320 KiB
6Elfogadva4/41ms316 KiB
7Elfogadva4/42ms316 KiB
8Hibás válasz0/42ms500 KiB
9Hibás válasz0/43ms508 KiB
10Elfogadva4/43ms496 KiB
11Elfogadva4/49ms784 KiB
12Elfogadva4/412ms1080 KiB
13Elfogadva4/423ms1620 KiB
14Elfogadva4/445ms2876 KiB
15Elfogadva4/478ms4540 KiB
16Elfogadva4/465ms4420 KiB
17Elfogadva4/4100ms5172 KiB
18Elfogadva4/468ms4008 KiB
19Hibás válasz0/464ms4148 KiB
20Hibás válasz0/463ms3972 KiB
21Elfogadva4/457ms3756 KiB
22Hibás válasz0/4115ms6096 KiB