Cod sursa(job #1223342)

Utilizator ion824Ion Ureche ion824 Data 28 august 2014 00:28:14
Problema Party Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Semestrul 2 Marime 1.01 kb
#include<fstream>
#include<cstdlib>
#include<ctime>
using namespace std;

int a1[1003], a2[1003], b1[1003], b2[1003], N, M;
int val[103];

void solve(){
	
	int l1,l2;
	
	for(int i=1;i<=M;++i)
	{
		l1 = val[a1[i]]; l2 = val[a2[i]];
		if(b1[i]) l1 ^= 1;
		if(b2[i]) l2 ^= 1;
		if(!l1 && !l2)
		{
			if(rand() % 2)
			{
				val[a1[i]] ^= 1;
			}
			else
			{
				val[a2[i]] ^= 1;
			}
			i = 0;
		}
		
		/*
		else
		if(!l1)
		{
			val[a1[i]] ^= 1;
			i = 0;
		}
		else
		if(!l2)
		{
			val[a2[i]] ^= 1;
			i = 0;
		}*/
	}
}

int main(){
	ifstream cin("party.in");
	ofstream cout("party.out");
	int i,j,x,y,z;
	
	srand(int(time(NULL)));
	
	cin >> N >> M;
	
	for(i=1;i<=M;++i)
	{
		cin >> a1[i] >> a2[i] >> z;
		if(z == 1 || z == 3) b2[i] = 1;
		if(z == 2 || z == 3) b1[i] = 1;
	}
	
	//for(i=1;i<=N;++i) val[i] = 1;
	
	solve();
	int NR = 0;
	for(i=1;i<=N;++i) if(val[i]) ++NR;
	
	cout << NR << "\n";
	for(i=1;i<=N;++i) if(val[i]) cout << i << "\n";
	
	return 0;
}