Cod sursa(job #170377)
Utilizator | Stirbu Cosmin CosminStirbu | Data | 2 aprilie 2008 18:15:17 |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include<stdio.h>
int st[9],n;
FILE*f=fopen("permutari.in","r");
FILE*g=fopen("permutari.out","w");
void afis ()
{ int i;
for (i=1;i<=n;i++) fprintf(g,"%d ",st[i]);
fprintf(g,"\n");
}
int valid (int p)
{ for (int i=1;i<=p-1;i++) if (st[i]==st[p]) return 0;
return 1;
}
void BKT (int p)
{ int i;
for (i=1;i<=n;i++)
{ st[p]=i;
if (valid(p))
if (p==n) afis();
else BKT(p+1);
}
}
int main ()
{ fscanf(f,"%d",&n);
BKT(1);
fcloseall();
return 0;}