Pagini recente » Cod sursa (job #494400) | Cod sursa (job #2242140) | Cod sursa (job #2968875) | Cod sursa (job #2988864) | Cod sursa (job #117325)
Cod sursa(job #117325)
#include <stdio.h>
#include <stdlib.h>
#define MAX 1001
long int n,k,m,i,ii,jj,p,nr;
char a[MAX][MAX];
long int x[MAX];
char viz[MAX];
void back(){
long int i;
if (k==n+1) {
if (a[x[n]][x[1]]==0) {
nr++;
if (nr==p) {
FILE *g = fopen("dusman.out","w");
for (i=1;i<=n;i++){
fprintf(g,"%ld ",x[i]);
}
fclose(g);
exit(0);
}
}
}
else {
for (i=1;i<=n;i++) {
if ((viz[i]==0)&&(a[x[k-1]][i]==0)){
viz[i]=1;
x[k]=i;
k++;
back();
k--;
viz[i]=0;
}
}
}
}
int main(){
FILE *f = fopen("dusman.in","r");
fscanf(f,"%ld %ld %ld",&n,&p,&m);
for (i=1;i<=m;i++){
fscanf(f,"%ld %ld",&ii,&jj);
a[ii][jj]=a[jj][ii]=1;
}
fclose(f);
k=1;
back();
return 0;
}