Cod sursa(job #276567)

Utilizator Cristy94Buleandra Cristian Cristy94 Data 11 martie 2009 11:16:27
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<fstream.h>
ifstream f("dusman.in");
ofstream g("dusman.out");
int m,n,t,k,i,a[4][1001],nr,viz[1001],x[1001],ok;

int cond(int k){
	 if(k>1){
	   if(viz[x[k]]==1)
		  return 0;
	   if(x[k-1]==a[1][x[k]] || x[k-1]==a[2][x[k]] || x[k-1]==a[3][x[k]])
		  return 0;
			 }
	   return 1;
	   }
void tipar(){int i;
   for(i=1;i<=n;i++)
	  g<<x[i]<<' ';}
void back(){
   k=1;x[k]=0;
while(k>0)
	  if(x[k]<n){
	   x[k]=x[k]+1;
		 if(cond(k)==1)
		   { if(k==n){
			   nr++;
			   viz[x[k]]=0;
			   }
		   viz[x[k]]=1;
		   if(nr==t){
			 tipar();break;}
			 else { k++;
				   x[k]=0;
					}
			  }
		   }
	   else {k--; viz[x[k]]=0;
				 }
				 }
int main(){int b,c;
f>>n>>t>>m;
for(i=1;i<=m;i++){
   f>>b>>c; ok=0;
   for(i=1;i<=a[0][b];i++)
		 if(a[i][b]==c)
		   ok=1;
   if(ok==0) {
   a[0][b]++;
   a[a[0][b]][b]=c;
   a[0][c]++;
   a[a[0][c]][c]=b;} }
back ();
return 0;
}