189692025-11-13 19:20:57KristófFertőzési sorozat (50 pont)cpp17Hibás válasz 42/5012ms568 KiB
#include <bits/stdc++.h>
using namespace std;

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

    int N, M, K;
    if (!(cin >> N >> M >> K)) return 0;
    vector<int> part(K);
    for (int i = 0; i < K; ++i) cin >> part[i];

    vector<vector<int>> g(N + 1);
    for (int i = 0; i < M; ++i) {
        int a, b;
        cin >> a >> b;
        g[a].push_back(b);
        g[b].push_back(a);
    }

    vector<int> ans;
    // Próbálunk minden lehetséges kezdőpontot
    for (int s = 1; s <= N; ++s) {
        vector<int> dist(N + 1, -1);
        queue<int> q;
        dist[s] = 0;
        q.push(s);
        while (!q.empty()) {
            int u = q.front(); q.pop();
            for (int v : g[u]) {
                if (dist[v] == -1) {
                    dist[v] = dist[u] + 1;
                    q.push(v);
                }
            }
        }

        bool ok = true;
        // Ellenőrizzük, hogy a rész-sorozat elemei elérhetőek-e
        for (int i = 0; i < K; ++i) {
            if (dist[part[i]] == -1) { ok = false; break; }
        }
        if (!ok) continue;

        // Ellenőrizzük a nem-csökkenő és legfeljebb +1 növekedés feltételt
        for (int i = 1; i < K && ok; ++i) {
            int prev = dist[part[i-1]];
            int cur  = dist[part[i]];
            if (cur < prev || cur - prev > 1) ok = false;
        }

        if (ok) ans.push_back(s);
    }

    sort(ans.begin(), ans.end());
    cout << ans.size() << "\n";
    for (size_t i = 0; i < ans.size(); ++i) {
        if (i) cout << " ";
        cout << ans[i];
    }
    cout << "\n";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base42/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/04ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/23ms568 KiB
7Elfogadva2/24ms508 KiB
8Elfogadva2/23ms316 KiB
9Elfogadva2/24ms316 KiB
10Elfogadva2/212ms452 KiB
11Elfogadva1/11ms444 KiB
12Elfogadva2/24ms316 KiB
13Elfogadva2/24ms316 KiB
14Elfogadva2/23ms316 KiB
15Elfogadva2/24ms500 KiB
16Elfogadva2/24ms380 KiB
17Elfogadva2/24ms456 KiB
18Elfogadva1/14ms508 KiB
19Elfogadva1/14ms448 KiB
20Elfogadva1/14ms460 KiB
21Elfogadva1/112ms460 KiB
22Elfogadva1/110ms316 KiB
23Elfogadva1/18ms316 KiB
24Hibás válasz0/18ms456 KiB
25Elfogadva1/18ms316 KiB
26Elfogadva1/19ms464 KiB
27Hibás válasz0/112ms316 KiB
28Hibás válasz0/19ms456 KiB
29Elfogadva1/110ms316 KiB
30Hibás válasz0/18ms460 KiB
31Hibás válasz0/18ms344 KiB
32Elfogadva1/19ms508 KiB
33Elfogadva1/112ms460 KiB
34Hibás válasz0/112ms316 KiB
35Hibás válasz0/112ms464 KiB
36Hibás válasz0/112ms460 KiB
37Elfogadva1/112ms508 KiB
38Elfogadva1/112ms316 KiB
39Elfogadva1/19ms456 KiB
40Elfogadva1/112ms460 KiB