Cod sursa(job #385085)

Utilizator cnt_tstcont teste cnt_tst Data 22 ianuarie 2010 08:01:47
Problema A+B Scor 0
Compilator cpp Status done
Runda lucrare_xi_d Marime 0.63 kb
#include <stdio.h>
FILE *f = fopen("permutari.in","r");
FILE *g = fopen("permutari.out","w");

int n,T;
int x[20];
int v[20];

void sol(){
	T++;
	for (int i=1;i<=n;i++)
		fprintf(g,"%d ",x[i]);
	fprintf(g,"\n");
}

int cont(int k) {
	if (k==n)
		return 1;
	int i,ok;
	ok = 0;
	for (i=1;i<=k;i++) {
		if (v[i] == 0)
			ok = 1;
	}
	return ok;
}

void back(int k) {
	if (k==n+1)
		sol();
	else
		for (int i=1;i<=n;i++)
			if (v[i]==0) {
				x[k]=i;
				v[i]=1;
				if (cont(k))
					back(k+1);
				v[i]=0;
			}
}

int main(){
	fscanf(f,"%d",&n);
	fclose(f);
	back(1);
	fclose(g);
	printf("%d",T);
}