Cod sursa(job #150056)

Utilizator katakunaCazacu Alexandru katakuna Data 6 martie 2008 15:41:53
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#include<stdlib.h>


int v[1001],nr,n,p,m,i,j,a[1001][1001],k,viz[1001];


cont (int p){

if(a[v[p]][v[p-1]]==1)return 0;

return 1;
}



void af(){
FILE *g=fopen("dusman.out","w");
for(i=1;i<=n;i++){
fprintf(g,"%d ",v[i]);
}
fclose(g);

exit(0);
}




void back(int k ){
int i;

   if(k<=n){

     for(i=1;i<=n;i++){
     v[k]=i;

      if(cont(k)&&viz[v[k]]==0){
      viz[v[k]]=1;
      back(k+1);
      viz[v[k]]=0;
      }

     }


   }

   else{

    nr++;
    if(nr==p)af();
  }

}




int main(){

FILE *f=fopen("dusman.in","r");
fscanf(f,"%d %d %d",&n,&p,&m);

  for(i=1;i<=m;i++){
  fscanf(f,"%d %d",&i,&j);
  a[i][j]=1;
  a[j][i]=1;
  }

fclose(f);

  back(1);



return 0;
}