Cod sursa(job #150412)

Utilizator katakunaCazacu Alexandru katakuna Data 6 martie 2008 22:04:25
Problema Dusman Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>
#include<stdlib.h>


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


int 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 i;

   if(k<=n){

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

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

      k++;
      back();
      k--;
      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);

k=1;
  back();



return 0;
}