Cod sursa(job #150879)

Utilizator katakunaCazacu Alexandru katakuna Data 7 martie 2008 15:51:35
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
#include<stdlib.h>


int x,y,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 k){
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+1);
      //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",&x,&y);
  a[x][y]=1;
  a[y][x]=1;
  }

fclose(f);

//k=1;
  back(1);



return 0;
}