168212025-05-13 17:55:20algoproKét csoportcpp17Time limit exceeded 73/100388ms21416 KiB
// UUID: f0187ca0-2552-4815-97d4-ec46a6e321e1
#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() {
	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
base73/100
1Accepted0/01ms316 KiB
2Accepted0/0115ms7340 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms508 KiB
7Accepted3/31ms316 KiB
8Accepted2/21ms316 KiB
9Accepted3/32ms500 KiB
10Accepted3/32ms316 KiB
11Accepted3/32ms316 KiB
12Accepted3/312ms956 KiB
13Accepted3/313ms1076 KiB
14Accepted3/314ms1076 KiB
15Accepted6/6114ms7364 KiB
16Accepted7/7129ms7316 KiB
17Accepted7/7141ms7096 KiB
18Accepted6/6238ms14244 KiB
19Accepted6/6263ms14160 KiB
20Accepted6/6291ms13996 KiB
21Time limit exceeded0/6358ms21416 KiB
22Time limit exceeded0/7379ms18996 KiB
23Time limit exceeded0/7388ms18740 KiB
24Time limit exceeded0/7388ms18740 KiB