147702025-02-02 11:11:12TakacsAndrasParti (75 pont)cpp17Accepted 75/7590ms6832 KiB
#include <bits/stdc++.h>
using namespace std;
int main() {
    int n; cin >> n;
    vector<int> bf(n+1);
    vector<vector<int>> g(n+1);
    for (int i = 1; i <= n; i++) {
        int a,b; cin >> a >> b;
        bf[a]++;
        bf[b]++;
        g[i].push_back(a);
        g[i].push_back(b);
    }
    queue<int> q;
    vector<bool> v(n+1);
    for (int i = 1; i <= n; i++) {
        if (bf[i] < 2) {
            q.push(i);
            v[i] = true;
        }
    }
    while (!q.empty()) {
        int a = q.front();
        q.pop();
        if (--bf[g[a][0]] < 2 && !v[g[a][0]]) {
            q.push(g[a][0]);
            v[g[a][0]] = true;
        }
        if (--bf[g[a][1]] < 2 && !v[g[a][1]]) {
            q.push(g[a][1]);
            v[g[a][1]] = true;
        }
    }
    vector<int> out;
    for (int i = 1; i <= n; i++) {
        if (bf[i] >= 2) out.push_back(i);
    }
    cout << out.size() << '\n';
    for (int x : out) cout << x << ' ';
    cout << '\n';
}
SubtaskSumTestVerdictTimeMemory
base75/75
1Accepted0/01ms316 KiB
2Accepted0/043ms3552 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms508 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms316 KiB
8Accepted4/41ms316 KiB
9Accepted4/42ms316 KiB
10Accepted4/42ms508 KiB
11Accepted4/41ms316 KiB
12Accepted4/42ms316 KiB
13Accepted4/43ms576 KiB
14Accepted4/44ms564 KiB
15Accepted4/443ms3636 KiB
16Accepted4/454ms4320 KiB
17Accepted4/461ms4908 KiB
18Accepted4/471ms5436 KiB
19Accepted4/481ms6248 KiB
20Accepted4/490ms6832 KiB
21Accepted4/487ms6776 KiB
22Accepted4/41ms316 KiB