Pagini recente » Cod sursa (job #3207936) | Cod sursa (job #685881) | Cod sursa (job #1326349) | Cod sursa (job #2478856) | Cod sursa (job #616983)
Cod sursa(job #616983)
#include<stdio.h>
#include<stdlib.h>
bool uz[1005][1005];
int p,n,st[1005],cnt,val,m,k,as,ev;
bool u[1005];
void tipar()
{
if(cnt<val)
{
cnt++;
}
else if(cnt==val)
{
for(int i=1;i<=n;i++)
printf("%d ",st[i]);
exit(0);
}
}
void init()
{
st[k]=0;
}
int succesor()
{
if(st[k]<n){st[k]++;return 1;}
return 0;
}
int valid()
{
if(uz[st[k]][st[k-1]]==1 || u[st[k]]==1) return 0;
else
{u[st[k]]=1;
return 1;
}
}
void back()
{
k=1;
cnt=1;
init();
while(k>0)
{
as=1,ev=0;
while(as!=0 &&ev==0)
{
as=succesor();
if(as)
ev=valid();
}
if(as)
if(k==n)
u[st[k]]=0,tipar();
else{k++,init();}
else u[st[--k]]=0;
}
}
int main()
{
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
int a,b;
scanf("%d %d %d",&n,&val,&m);
for(int i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
uz[a][b]=1;
uz[b][a]=1;
}
back();
}