Pagini recente » Cod sursa (job #2265569) | Cod sursa (job #1993543) | Cod sursa (job #152498) | Cod sursa (job #2471584) | Cod sursa (job #554094)
Cod sursa(job #554094)
#include<stdio.h>
FILE*fin,*fout;
int n,i,j,k1,sol[1001],m,viz[1001],a[1001][1001],x,y;
int verifica(int k) {
int i;
if(k>1&&a[sol[k-1]][sol[k]]==1){return 0;}
return 1;
}
void tipar(){
int i;
for(i=1;i<=n;i++){fprintf(fout,"%d ",sol[i]);}
}
void back(int k){
int i;
if(j==k1){return;}
for(i=1;i<=n;i++){
if(viz[i]==0){
viz[i]=1;
sol[k]=i;
if(verifica(k)){
if(k==n){
j++;
if(j==k1){tipar();return;}
}
else{back(k+1);}
}
viz[i]=0;
}
}
}
int main(){
fin=fopen("dusman.in","r");
fout=fopen("dusman.out","w");
fscanf(fin,"%d %d %d",&n,&k1,&m);
for(i=1;i<=m;i++){
fscanf(fin,"%d %d",&x,&y);
a[x][y]=1;a[y][x]=1; }
back(1);
return 0;
}