Pagini recente » Cod sursa (job #361672) | Istoria paginii runda/abcdefg../clasament | Cod sursa (job #783785) | Cod sursa (job #175765) | Cod sursa (job #181193)
Cod sursa(job #181193)
#include <cstdio>
#define Nmax 1001
#define IN "dusman.in"
#define OUT "dusman.out"
char viz[Nmax];
int cnt,sol[Nmax];
int N,K,M,A[Nmax][Nmax];
bool flag;
void afisare()
{
for(int i=0; i<N; i++)
printf("%d ",sol[i]);
printf("\n");
}
void back(int k)
{
if(k == N)
{
if(++cnt == K)
{
afisare();
flag = true;
}
return;
}
if(!flag)
for(int i=1; i<=N; i++)
{
if(viz[i]) continue;
if((A[sol[k-1]][i] || A[i][sol[k-1]]) && k) continue;
sol[k] = i;
viz[i] = 1;
back(k+1);
viz[i] = 0;
}
}
int main()
{
freopen(IN,"r",stdin);
freopen(OUT,"w",stdout);
int x,y;
scanf("%d %d %d",&N,&K,&M);
for(int i=0; i<M; i++)
{
scanf("%d %d",&x,&y);
A[x][y] = A[y][x] = 1;
}
back(0);
}