Cod sursa(job #149508)

Utilizator katakunaCazacu Alexandru katakuna Data 5 martie 2008 20:11:17
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>

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


int cont (int x){


  for(i=1;i<=a[0][ v[x] ];i++){

   if( v[k-1]==a[i][ v[x] ] )return 0;

  }

  for(i=1;i<x;i++){
    if(v[i]==v[x])return 0;
  }


return 1;
}



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[0][i]++;
  a[a[0][i]][i]=j;

  a[0][j]++;
  a[a[0][j]][j]=i;

  }

fclose(f);

k=1;

  while(k>0){

    if(v[k]<n){
       v[k]++;

       if(cont(k)){

	  if(k==n){
	  nr++;
	    if(nr==p)break;
	  }

	  else{
	  k++;
	  v[k]=0;
	  }

       }

    }

    else{
    k--;
    }




  }



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

return 0;
}