116642024-11-04 11:47:29MagyarKendeSZLGFertőzési sorozat (50 pont)cpp17Elfogadva 50/5017ms560 KiB
#include <iostream>
#include <queue>
#include <set>
#include <vector>

using namespace std;

int main() {
    cin.tie(0), ios::sync_with_stdio(0);

    int N, M, K;
    cin >> N >> M >> K;

    vector<int> a(K);
    for (int& x : a) cin >> x;
    set<int> aSet(a.begin(), a.end());

    vector<vector<int>> g(N + 1);
    while (M--) {
        int U, V;
        cin >> U >> V;
        g[U].push_back(V);
        g[V].push_back(U);
    }

    vector<int> result;
    for (int start = 1; start <= N; start++) {
        vector<int> vis(N + 1);
        vis[start] = 1;
        queue<int> q({start});

        while (!q.empty()) {
            int u = q.front();
            q.pop();
            for (int v : g[u]) {
                if (!vis[v]) {
                    vis[v] = vis[u] + 1;
                    q.push(v);
                }
            }
        }

        vector<int> order(K);
        set<int> orderSet;
        for (int i = 0; i < K; i++) {
            orderSet.insert(order[i] = vis[a[i]]);
        }

        bool ok = 1;
        for (int i = 1; i < K; i++) {
            int d = order[i] - order[i - 1];
            ok = ok && (d == 0 || d == 1);
        }

        orderSet.erase(orderSet.begin());
        if (!orderSet.empty()) {
            orderSet.erase(*orderSet.rbegin());
        }

        for (int u = 1; u <= N; u++) {
            ok = ok && !(!aSet.count(u) &&
                         orderSet.count(vis[u]));
        }

        if (ok) { result.push_back(start); }
    }

    cout << result.size() << "\n";
    for (int x : result) cout << x << " ";
    cout << "\n";
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms320 KiB
2Elfogadva0/01ms320 KiB
3Elfogadva0/04ms320 KiB
4Elfogadva2/21ms320 KiB
5Elfogadva2/21ms320 KiB
6Elfogadva2/23ms320 KiB
7Elfogadva2/23ms436 KiB
8Elfogadva2/24ms508 KiB
9Elfogadva2/24ms320 KiB
10Elfogadva2/213ms464 KiB
11Elfogadva1/12ms320 KiB
12Elfogadva2/26ms320 KiB
13Elfogadva2/27ms508 KiB
14Elfogadva2/24ms320 KiB
15Elfogadva2/26ms500 KiB
16Elfogadva2/26ms320 KiB
17Elfogadva2/24ms320 KiB
18Elfogadva1/14ms320 KiB
19Elfogadva1/16ms460 KiB
20Elfogadva1/14ms464 KiB
21Elfogadva1/112ms468 KiB
22Elfogadva1/112ms476 KiB
23Elfogadva1/19ms460 KiB
24Elfogadva1/19ms508 KiB
25Elfogadva1/18ms472 KiB
26Elfogadva1/19ms320 KiB
27Elfogadva1/110ms460 KiB
28Elfogadva1/19ms320 KiB
29Elfogadva1/110ms320 KiB
30Elfogadva1/19ms320 KiB
31Elfogadva1/18ms460 KiB
32Elfogadva1/19ms356 KiB
33Elfogadva1/117ms320 KiB
34Elfogadva1/110ms320 KiB
35Elfogadva1/112ms464 KiB
36Elfogadva1/110ms320 KiB
37Elfogadva1/112ms548 KiB
38Elfogadva1/112ms560 KiB
39Elfogadva1/19ms508 KiB
40Elfogadva1/114ms320 KiB