168222025-05-13 17:55:49algoproKét csoportcpp17Accepted 100/100184ms21480 KiB
// UUID: 2b848363-4096-4fa8-9cd2-1f61e73394ae
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>>g;
vector<int>group,cnt;

void dfs(int x){
    cnt[x]=g[x].size()-cnt[x];
    group[x]=1-group[x];
    for(int y:g[x]){
        if(group[y]==group[x])cnt[y]++;
        else cnt[y]--;
    }
    for(int y:g[x]){
        if(cnt[y]>1)dfs(y);
    }
}

int main() {
    ios::sync_with_stdio(0);cin.tie(0);
	int n;cin>>n;
    g.resize(n+1);group.resize(n+1);cnt.resize(n+1);
    for(int i=1;i<=n;i++){
        while(true){
            int a;cin>>a;
            if(a==0)break;
            g[i].push_back(a);
        }
        cnt[i]=g[i].size();
    }
    for(int i=1;i<=n;i++){
        if(cnt[i]>1)dfs(i);
    }
    vector<int>ans;
    for(int i=1;i<=n;i++)if(group[i]==0)ans.push_back(i);
    cout<<ans.size()<<'\n';
    for(int x:ans)cout<<x<<' ';
}
SubtaskSumTestVerdictTimeMemory
base100/100
1Accepted0/01ms316 KiB
2Accepted0/050ms7344 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/31ms316 KiB
8Accepted2/21ms316 KiB
9Accepted3/32ms508 KiB
10Accepted3/31ms508 KiB
11Accepted3/31ms316 KiB
12Accepted3/36ms1076 KiB
13Accepted3/36ms1076 KiB
14Accepted3/37ms1076 KiB
15Accepted6/650ms7344 KiB
16Accepted7/754ms7204 KiB
17Accepted7/759ms7216 KiB
18Accepted6/6105ms14304 KiB
19Accepted6/6107ms14252 KiB
20Accepted6/6119ms13996 KiB
21Accepted6/6158ms21480 KiB
22Accepted7/7162ms21132 KiB
23Accepted7/7179ms20908 KiB
24Accepted7/7184ms20904 KiB