70852023-12-30 09:38:01MagyarKendeSZLGParti (75 pont)cpp17Wrong answer 72/7550ms16004 KiB
#include <bits/stdc++.h>

#define speed cin.tie(0); ios::sync_with_stdio(0)
#define cinv(v) for (auto& e : v) cin >> e;
#define all(v) v.begin(), v.end()
#define has(s, e) s.count(e)

using namespace std;
using ll = long long;
using point = array<int, 2>;

int N;
vector<vector<int>> g;
vector<int> indegS;
vector<bool> done;

void remove(int node) {
    if (done[node]) return;
    done[node] = 1;
    indegS[node] = 0;
    for (int neighbor : g[node]) {
        if (!done[neighbor] && --indegS[neighbor] <= 0) {
            remove(neighbor);
        }
    }
}

int main() {
    speed;

    cin >> N;
    g.resize(N + 1);
    indegS.resize(N + 1);
    done.resize(N + 1);

    for (int i = 1; i <= N; i++) {
        int U, V;
        cin >> U >> V;
        g[i].push_back(U);
        g[i].push_back(V);
        indegS[U]++;
        indegS[V]++;
    }

    for (int i = 1; i <= N; i++) {
        if (indegS[i] < 2) {
            remove(i);
        }
    }

    vector<int> result;

    for (int i = 1; i <= N; i++) {
        if (indegS[i] >= 2) {
            result.push_back(i);
        }
    }

    cout << result.size() << '\n';
    for (int n : result) cout << n << ' ';
}
SubtaskSumTestVerdictTimeMemory
base72/75
1Accepted0/03ms1864 KiB
2Accepted0/026ms8424 KiB
3Accepted3/33ms2300 KiB
4Accepted3/33ms2316 KiB
5Wrong answer0/33ms2452 KiB
6Accepted3/33ms2668 KiB
7Accepted3/33ms2884 KiB
8Accepted4/43ms3268 KiB
9Accepted4/43ms3244 KiB
10Accepted4/43ms3432 KiB
11Accepted4/43ms3432 KiB
12Accepted4/43ms3632 KiB
13Accepted4/44ms3936 KiB
14Accepted4/44ms4088 KiB
15Accepted4/426ms9820 KiB
16Accepted4/430ms11012 KiB
17Accepted4/435ms12172 KiB
18Accepted4/439ms13300 KiB
19Accepted4/445ms14628 KiB
20Accepted4/448ms15856 KiB
21Accepted4/450ms16004 KiB
22Accepted4/43ms3600 KiB