Cod sursa(job #229344)
#include<stdio.h>
FILE *fin=fopen("dusman.in","r"),
*fout=fopen("dusman.out","w");
int N,M,K,d[1005][1005],x[1005];
char uz[1005];
void afis(){
for(int i=1;i<=N;i++)
fprintf(fout,"%d ",x[i]);
fprintf(fout,"\n");
}
void bkt(int k){
if(K<0) return;
if(k==N+1){
--K;
if(K==0)
afis();
}
else{
for(int i=1;i<=N;i++)
if(uz[i]==0&&d[i][x[k-1]]==0){
uz[i]=1;
x[k]=i;
bkt(k+1);
uz[i]=0;
}
}
}
int main(){
fscanf(fin,"%d %d %d",&N,&K,&M);
for(int i=1;i<=M;i++){
int a,b;
fscanf(fin,"%d %d",&a,&b);
d[a][b]=d[b][a]=1;
}
bkt(1);
fclose(fin);
fclose(fout);
return 0;
}