Cod sursa(job #735653)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 16 aprilie 2012 22:14:43
Problema Party Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 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;
}