Cod sursa(job #417717)

Utilizator CS-meStanca Marian Ciprian CS-me Data 14 martie 2010 19:19:21
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<stdio.h>
FILE *fin,*fout;
int a[1001][1001],x[1001],viz[1001],m,n,p,nr,xx,y,i;
void tipar(int k){
int i;
for(i=1;i<=k;i++){
	fprintf(fout,"%d ",x[i]);
}
}
int cont(int k){
	if(k>1){
	return 1-a[x[k]][x[k-1]];}
return 1;
	
}
void back(){
	int k;
	k=1;
	x[k]=0;
	while(k>0){
		if(x[k]<n){
			x[k]++;
			if(viz[x[k]]==0){
			if(cont(k)){
				 viz[x[k]]=1;
				 if(k==n){
	                nr++;
                   if(nr==p){
					   tipar(k);
				   break;}
                   viz[x[k]]=0;				   
				 }
				 else{k++; x[k]=0;}
			}
			
			}
		}
		else{k--; viz[x[k]]=0;}
		
	}

}

int main(){
	fin=fopen("dusman.in","r");
	fout=fopen("dusman.out","w");
	fscanf(fin,"%d %d %d",&n,&p,&m);
	for(i=1;i<=m;i++){
		fscanf(fin,"%d %d",&xx,&y);
		a[xx][y]=a[y][xx]=1;
	}
	back();
fclose(fin);
return 0;}