Pagini recente » Cod sursa (job #864527) | Cod sursa (job #2053474) | Cod sursa (job #3220384) | Cod sursa (job #2686299) | Cod sursa (job #417717)
Cod sursa(job #417717)
#include<stdio.h>
FILE *fin,*fout;
int a[1001][1001],x[1001],viz[1001],m,n,p,nr,xx,y,i;
void tipar(int k){
int i;
for(i=1;i<=k;i++){
fprintf(fout,"%d ",x[i]);
}
}
int cont(int k){
if(k>1){
return 1-a[x[k]][x[k-1]];}
return 1;
}
void back(){
int k;
k=1;
x[k]=0;
while(k>0){
if(x[k]<n){
x[k]++;
if(viz[x[k]]==0){
if(cont(k)){
viz[x[k]]=1;
if(k==n){
nr++;
if(nr==p){
tipar(k);
break;}
viz[x[k]]=0;
}
else{k++; x[k]=0;}
}
}
}
else{k--; viz[x[k]]=0;}
}
}
int main(){
fin=fopen("dusman.in","r");
fout=fopen("dusman.out","w");
fscanf(fin,"%d %d %d",&n,&p,&m);
for(i=1;i<=m;i++){
fscanf(fin,"%d %d",&xx,&y);
a[xx][y]=a[y][xx]=1;
}
back();
fclose(fin);
return 0;}