Cod sursa(job #422196)
#include<stdio.h>
#include<stdlib.h>
FILE*f=fopen("dusman.in","r");
FILE*g=fopen("dusman.out","w");
int i,x[1001],a[1001][1001],viz[1001],n,nrp,m,ii,jj;
int cond(int k){
int ok;
ok=1;
if (k>1 && a[x[k]][x[k-1]] ==1)
ok = 0;
return ok;
}
void back(int k){
int i;
if(k==n+1){
nrp--;
if(nrp==0){
for(i=1;i<=n;i++)
fprintf(g,"%d ",x[i]);
fclose(g);
fclose(f);
exit(0);
}
return;
}
for(i=1;i<=n;i++){
if(viz[i]==0){
viz[i]=1;
x[k]=i;
if (cond(k))
back(k+1);
viz[i]=0;
}
}
}
int main () {
fscanf(f,"%d %d %d",&n,&nrp,&m);
for(i=1;i<=m;i++){
fscanf(f,"%d %d",&ii,&jj);
a[ii][jj]=a[jj][ii]=1;
}
back(1);
// fclose(f);
// fclose(g);
return 0;
}