Cod sursa(job #528781)
Utilizator | Data | 3 februarie 2011 14:19:33 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <stdio.h>
int sol[10], ok[10],n;
FILE *f, *g;
void scriere(void) {
int i;
for (i=1; i<=n; i++) fprintf(g,"%d ",sol[i]);
fprintf(g,"\n");
}
void gen_perm(int k){
int i;
if (k>n) scriere();
else
for (i=1; i<=n; i++)
if (ok[i]==0) {
sol[k]=i;
ok[i]=1;
gen_perm(k+1);
ok[i]=0;
}
}
int main(void){
int i;
f=fopen("permutari.in","r");
g=fopen("permutari.out","w");
fscanf(f,"%d",&n);
for (i=1; i<=n; i++) ok[i]=0;
gen_perm(1);
fclose(f);
fclose(g);
return 0;
}