Cod sursa(job #473372)
#include<stdio.h>
#include<stdlib.h>
using namespace std;
#define dim 1010
int n,k,K,T,x,y,sol[dim],dusman[dim][dim],as,ev,i;
short int viz[dim];
FILE *f=fopen("dusman.in","r"), *g=fopen("dusman.out","w");
void afisare()
{
int i;
for(i=1;i<=n;i++)
fprintf(g,"%d ",sol[i]);
fprintf(g,"\n");
fclose(g);
exit(0);
}
void solve( int k )
{int i;
if(K<0) return;
if(k>n)
{
if(--K==0) afisare();
return;
}
for(i=1;i<=n;i++)
{
if(viz[i]==0&&dusman[ sol[k-1] ][i]==0)
{
viz[i]=1;
sol[k]=i;
solve(k+1);
viz[i]=0;
}
}
}
int main()
{
fscanf(f,"%d %d %d ",&n,&K,&T);
for(i=1;i<=T;i++)
{fscanf(f,"%d %d",&x,&y);
dusman[x][y]=1;
dusman[y][x]=1;
}
fclose(f);
solve(1);
return 0;
}