169222025-05-15 18:23:14algoproKét csoportcpp17Accepted 100/100238ms27296 KiB
// UUID: eb0307d8-8b0f-4e97-a113-2d8ff39aa176
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define pii pair<int, int>
#define fi first
#define se second

vector<int> v;
vector<bool> cs;
vector<vector<int>> adj;
queue<int> q;

void refresh(int x) {
    v[x]=0;
    for (int u : adj[x]) {
        v[x]+=(cs[x]==cs[u]);
    }
}

signed main() {
	int n;
    cin >> n;
    cs.assign(n+1, 0);
    v.resize(n+1);
    adj.resize(n+1);
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    for (int i = 1; i <= n; i++) {
        int u;
        cin >> u;
        while (u!=0) {
            adj[i].push_back(u);
            cin >> u;
        }
    } // én nem értem mi történik
    //az inputon futtatod?
    for (int i = 1; i <= n; i++) {
        refresh(i);
        if (v[i]>1)q.push(i);
    }
    
    while (!q.empty()) {
        int x = q.front();
        q.pop();
        refresh(x);
        if (v[x]<=1)continue;
        cs[x]=!cs[x];
        for (int u : adj[x]) {
            refresh(u);
            if (v[u]>1) q.push(u);
        }
    }
    int m = 0;
    vector<int> ansv;
    for (int i = 1; i <= n; i++) {
        if (cs[i]==0) {
            m++;
            ansv.push_back(i);
        }
    }
    cout << m << endl;
    for (int x : ansv)cout << x << ' ';
}
SubtaskSumTestVerdictTimeMemory
base100/100
1Accepted0/01ms316 KiB
2Accepted0/064ms8756 KiB
3Accepted3/31ms500 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms508 KiB
8Accepted2/21ms316 KiB
9Accepted3/32ms316 KiB
10Accepted3/32ms316 KiB
11Accepted3/32ms508 KiB
12Accepted3/37ms1104 KiB
13Accepted3/37ms1076 KiB
14Accepted3/38ms1320 KiB
15Accepted6/663ms8668 KiB
16Accepted7/770ms8756 KiB
17Accepted7/771ms9424 KiB
18Accepted6/6126ms17200 KiB
19Accepted6/6135ms17456 KiB
20Accepted6/6158ms18284 KiB
21Accepted6/6189ms25456 KiB
22Accepted7/7216ms25904 KiB
23Accepted7/7225ms27296 KiB
24Accepted7/7238ms27296 KiB