Cod sursa(job #340116)

Utilizator ZethpixZethpix Zethpix Data 13 august 2009 10:11:05
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <stdio.h>
FILE *f,*g;
int ok=0;
long a[1002][1002],sol[1002],use[1002],n,x,m,i,j,z,nr,y;
void afis(){
	long i;
	for(i=1;i<=n;i++)
		fprintf(g,"%ld ",sol[i]);
	fprintf(g,"\n");
	return;
}
void back(long k){
	long i;
	if(k>n){
		nr++;
		if (nr==x){
			afis();
			ok=1;
			return;
		}
	}
	else{
		if (ok==1) return;
		for(i=1;i<=n;i++)
			if(!use[i]&&!a[sol[k-1]][i]){
				use[i]=1;
				sol[k]=i;
				back(k+1);
				use[i]=0;
			}
	}
}
int main(){
	f=fopen("dusman.in","r");
	g=fopen("dusman.out","w");
	fscanf(f,"%ld%ld%ld",&n,&x,&m);
	for(i=1;i<=n;i++) use[i]=0;
	nr=0;
	sol[0]=0;
	for(i=0;i<=n;i++)
		for(j=0;j<=n;j++)
			a[i][j]=0;
	for(i=1;i<=m;i++){
		fscanf(f,"%ld%ld",&z,&y);
		a[z][y]=1;
		a[y][z]=1;
	}
	back(1);
	fclose(f);
	fclose(g);
	return 0;
}