Cod sursa(job #145817)
| Utilizator | Data | 29 februarie 2008 15:47:42 | |
|---|---|---|---|
| Problema | Generare de permutari | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include <stdio.h>
int N, Q[16], u[16];
void write()
{
for (int i = 1; i < N; ++i)
printf("%d ", Q[i]);
printf("%d\n", Q[i]);
}
void back(int k)
{
if (k == N+1)
write();
else
for (int i = 1; i <= N; ++i)
if (!u[i])
{
Q[k] = i;
u[i] ++;
back(k+1);
u[i] --;
}
}
int main()
{
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
scanf("%d", &N);
back(1);
return 0;
}