168082025-05-13 17:26:39horkaKét csoportcpp17Elfogadva 100/100199ms20036 KiB
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> kis,ossz;
vector<int> csop;
void dfs(int cs)
{
	int hany=0;
	for(int &x:ossz[cs])
		if(csop[x]==csop[cs]) hany++;
	if(hany<=1) return;
	if(hany==3)
	{
		csop[cs]=3-csop[cs];
		return;
	}
	csop[cs]=3-csop[cs];
	int ind=0;
	for(int &x:ossz[cs])
		if(csop[x]==csop[cs]) ind=x;
	dfs(ind); 
}
int main() {
	ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int n; cin>>n;
	ossz.assign(n+1,vector<int>());
	csop.assign(n+1,0);
	for(int i=1; i<=n; i++)
	{
		while(1)
		{
			int x; cin>>x;
			if(x==0) break;
			ossz[i].push_back(x);
		}
	}
	for(int i=1; i<=n; i++)
	{
		csop[i]=1;
		dfs(i);
		for(int &x:ossz[i])
		{
			if(x>i) continue;
			int hany=0;
			for(int &j:ossz[x])
				if(csop[j]==csop[x]) hany++;
			if(hany>1) dfs(x); 
		}
	}
	vector<int> ans;
	for(int i=1; i<=n; i++)
		if(csop[i]==1) ans.push_back(i);
	cout<<(int)ans.size()<<"\n";
	for(int &i:ans)
		cout<<i<<" ";
	cout<<"\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base100/100
1Elfogadva0/01ms508 KiB
2Elfogadva0/054ms6832 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/36ms1080 KiB
13Elfogadva3/37ms1076 KiB
14Elfogadva3/37ms1076 KiB
15Elfogadva6/654ms6964 KiB
16Elfogadva7/759ms6744 KiB
17Elfogadva7/764ms6808 KiB
18Elfogadva6/6114ms13564 KiB
19Elfogadva6/6119ms13228 KiB
20Elfogadva6/6129ms13152 KiB
21Elfogadva6/6172ms20036 KiB
22Elfogadva7/7182ms19884 KiB
23Elfogadva7/7199ms19624 KiB
24Elfogadva7/7195ms19596 KiB