Pagini recente » Cod sursa (job #584988) | Cod sursa (job #2815902) | Cod sursa (job #648476) | Cod sursa (job #2599326) | Cod sursa (job #467254)
Cod sursa(job #467254)
#include<cstdio>
#include<list>
using namespace std;
long n,a,b,c,v[100005],q,m;
list<long> L[100005],C[100005],x,y;
list<long>::iterator it,it1,it2,itc;
int main()
{freopen("andrei.in","r",stdin);
scanf("%ld%ld",&n,&m);
long i;
for(i=1;i<=m;++i)
{scanf("%ld%ld%ld",&a,&b,&c);
if(c==2)
{++q;
x.push_back(a);
y.push_back(b);
}
else
{
L[a].push_back(b);
L[b].push_back(a);
C[a].push_back(c);
C[b].push_back(c);
}
}
fclose(stdin);
freopen("andrei.out","w",stdout);
long ok=1;
for(i=0;i<=100001;++i)
v[i]=-1;
for(it1=x.begin(),it2=y.begin();it1!=x.end();++it1,++it2)
{v[*it1]=0;v[*it2]=0;}
for(i=1;i<=n;++i)
for(it=L[i].begin(),itc=C[i].begin();it!=L[i].end();++it,++itc)
if(v[*it]==-1)
if(v[i]==0)
v[*it]=1;
else
v[*it]=0;
else
if(v[*it]==v[i]&&v[*it]==*itc)
{ok=0;
break;
}
if(ok==0)
{for(i=0;i<=100001;++i)
v[i]=-1;
for(it1=x.begin(),it2=y.begin();it1!=x.end();++it1,++it2)
{v[*it1]=1;v[*it2]=1;}
for(it=L[i].begin(),itc=C[i].begin();it!=L[i].end();++it,++itc)
if(v[*it]==-1)
if(v[i]==0)
v[*it]=1;
else
v[*it]=0;
else
if(v[*it]==v[i]&&v[*it]==*itc)
{ok=0;
break;
}
}
for(i=1;i<=n;++i)
printf("%ld ",v[i]);
fclose(stdout);
return 0;
}