Pagini recente » Cod sursa (job #3294177) | Cod sursa (job #2864255) | Cod sursa (job #280483) | Cod sursa (job #2604070) | Cod sursa (job #186537)
Cod sursa(job #186537)
#include<stdio.h>
int dus[1001][4],st[1010],top,n,m,k;
int evalid(int top)
{
int i;
for(i=1;i<top;i++)
if(st[i]==st[top])
return 0;
for(i=1;i<=3;i++)
if(dus[st[top-1]][i]==st[top])
return 0;
return 1;
}
int main()
{
int a,b,i;
freopen("dusman.in","r",stdin);
scanf("%d%d%d",&n,&k,&m);
for(i=1;i<=m;i++)
{
scanf("%d%d",&a,&b);
for(i=1;i<=3;i++)
if(dus[a][i]==0)
{
dus[a][i]=b;
break;
}
for(i=1;i<=3;i++)
if(dus[b][i]==0)
{
dus[b][i]=a;
break;
}
}
top=1;
st[top]=0;
int cand,nr=0;
while(nr<k)
{
cand=0;
while(st[top]<n&&!cand)
{
st[top]++;
cand=evalid(top);
}
if(cand==0)
top--;
else
if(top==n)
nr++;
else
{
top++;
st[top]=0;
}
}
freopen("dusman.out","w",stdout);
for(i=1;i<=n;i++)
printf("%d ",st[i]);
printf("\n");
return 0;
}