Pagini recente » Cod sursa (job #265602) | Cod sursa (job #467312) | Cod sursa (job #3236020) | Cod sursa (job #3289457) | Cod sursa (job #467230)
Cod sursa(job #467230)
#include<stdio.h>
int a[1000][1000],i,st[1000],x,y,z,t=1,t1=1,n,m;
int valid(int k)
{
int i,t=1;
if(k==1) return 1;
else
{
if(st[k]==0)
{
for(i=1;i<k&&t;i++)
{
if(st[i]==0&&a[k][i]==1) t=0;
if(st[i]==1&&a[k][i]==3) t=0;
}
}
if(st[k]==1)
{
for(i=1;i<k&&t;i++)
{
if(st[i]==0&&a[k][i]==3) t=0;
if(st[i]==1&&a[k][i]==2) t=0;
}
}
}
return t;
}
void back(int k)
{
st[k]=-1;
while(k<=n&&st[k]<1&&t1)
{
st[k]++;
if(valid(k))
{
if(k==n)
{
int i;
for(i=1;i<=n;i++)
printf("%d ",st[i]);
t1=0;
}
else
back(k+1);
}
}
}
int main()
{
freopen("andrei.in","r",stdin);
freopen("andrei.out","w",stdout);
scanf("%d%d\n",&n,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d%d\n",&x,&y,&z);
a[x][y]=a[y][x]=z+1;
}
back(1);
return 0;
}