Cod sursa(job #467086)

Utilizator tranbachhaiTran Bach Hai tranbachhai Data 28 iunie 2010 11:24:22
Problema Andrei Scor 10
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 2 Marime 0.63 kb
#include<stdio.h>
#define NMAX 100010

int v[NMAX];
int ok,mat[3][NMAX];

int main()
{
int i,n,m;
freopen("andrei.in","r",stdin);
freopen("andrei.out","w",stdout);

scanf("%d%d",&n,&m);
for (i=1;i<=m;++i)
	scanf("%d%d%d",&mat[1][i],&mat[2][i],&mat[0][i]);
while(!ok)
{
ok=1;
for (i=1;i<=m;++i)
	if (mat[0][i]==2 && v[mat[1][i]]!=v[mat[2][i]])
		v[mat[1][i]]=v[mat[2][i]]=i%2,ok=0;
	else if (mat[0][i]==1 && v[mat[1][i]]==1 && v[mat[2][i]]==1)
		v[mat[i%2+1][i]]=0,ok=0;
	else if (mat[0][i]==0 && v[mat[1][i]]==0 && v[mat[2][i]]==0)
		v[mat[i%2+1][i]]=1,ok=0;	
}
for (i=1;i<=n;++i)
	printf("%d ",v[i]);
return 0;
}