Cod sursa(job #1132524)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 3 martie 2014 16:09:10
Problema Party Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Semestrul 2 Marime 0.87 kb
#include<fstream>
#include<cstdlib>
#define dim 102
#include<ctime>
using namespace std;


ifstream f("party.in");
ofstream g("party.out");
int C[10*dim],n,m,i,Nr;
struct inv {
	int x,y;
	int c;
}
v[10*dim];
int verificare( int k )  {

	if( k==0)
		return  C[v[i].x] || C[v[i].y]  ;

	if(k==1)
		return C[v[i].x] || !C[v[i].y];

	if(k==2)
		return C[v[i].y]||!C[v[i].x];

	if(k==3)
		return C[v[i].x]+C[v[i].y]!=2 ;

	return 0;
}
int main () {

	f>>n>>m;

	for(i=1;i<=m;i++)
		f>>v[i].x>>v[i].y>>v[i].c;
	for(i=1;i<=n;i++)
		C[i]=1;

	for(i=1;i<=m;i++){

		if(!verificare(v[i].c)) {
			int a=rand()%2;

			if(  a==1  ) {
				C[v[i].y]=!C[v[i].y];
			}
			else {
				C[v[i].x]=!C[v[i].x];
			}
			i=0;
		}
	}
	for(i=1;i<=n;i++)
		if(C[i]){
			++Nr;
		}
	g<<Nr<<"\n";
	for(i=1;i<=n;++i) {
		if(C[i])
			g<<i<<"\n";
	}
	return 0;
}