Pagini recente » Cod sursa (job #977977) | Cod sursa (job #989118) | Cod sursa (job #2407900) | Cod sursa (job #42461) | Cod sursa (job #237140)
Cod sursa(job #237140)
#include<cstdio>
int a[1001][1001],st[1001],k,i,m,x,y,n,kappa,k_sol,as,ev,ok;
void init()
{ st[k]=0;}
int valid()
{ for(i=1;i<k;i++)
if(st[i]==st[k]||a[st[i]][st[i+1]]) return 0;
return 1;
}
int sol()
{ return k==n;}
int succ()
{ if(st[k]<n){st[k]++;return 1;}
return 0;
}
void work()
{ k_sol++;
if(k_sol==kappa)
{ ok=1;
for(i=1;i<=n;i++)
printf("%d ",st[i]);
}
}
void back()
{ k=1;init();
while(k>0&&!ok)
{ as=1;ev=0;
while(as&&!ev)
{ as=succ();
if(as) ev=valid();
}
if(as)
if(sol()) work();
else {k++;init();}
else k--;
}
}
int main()
{ freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
scanf("%d%d%d",&n,&kappa,&m);
for(i=1;i<=m;i++)
{ scanf("%d%d",&x,&y);
a[x][y]=a[y][x]=1;
}
back();
return 0;
}