Pagini recente » Cod sursa (job #2360634) | Cod sursa (job #2341478) | Cod sursa (job #795608) | Cod sursa (job #2139018) | Cod sursa (job #267270)
Cod sursa(job #267270)
#include<stdio.h>
#define IN "dusman.in","r",stdin
#define OUT "dusman.out","w",stdout
struct dusman{
int x,y;
};
int n,k,m,s;
dusman v[3020];
int sol[1020];
char marc[1020];
void citire()
{
freopen(IN);
scanf("%d%d%d",&n,&k,&m);
for(int i=1;i<=m;++i)
scanf("%d%d",&v[i].x,&v[i].y);
}
int valid(int p,int nr)
{
for(int i=1;i<=p;++i)
if(sol[i]==nr)
return 0;
return 1;
}
void afisare()
{
freopen(OUT);
for(int i=1;i<=n;++i)
printf("%d ",sol[i]);
printf("\n");
}
void back(int p)
{
if(p==n+1)
{
//for(int i=1;i<p;++i)
//printf("%d ",sol[i]);
//printf("\n");
for(int i=1;i<p;++i)
for(int j=1;j<=m;++j)
if((v[j].x==sol[i] && v[j].y==sol[i+1]) || (v[j].x==sol[i+1] && sol[i]==v[j].y))
return;
++s;
if(s==k)
afisare();
return;
}
for(int i=1;i<=n && s!=k;++i)
{
if(marc[i]==0)
{
marc[i]=1;
sol[p]=i;
back(p+1);
marc[i]=0;
}
}
}
int main()
{
citire();
back(1);
return 0;
}