Cod sursa(job #627075)
Utilizator | Sebastian Claici sebii_c | Data | 28 octombrie 2011 22:40:00 |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <stdio.h>
#define NMAX 20
int viz[NMAX], rez[NMAX];
int N;
void print()
{
int i;
for (i=1; i<=N; ++i)
printf("%d ", rez[i]);
}
void perm(int len)
{
int i;
if (len == N) {
print();
printf("\n");
}
else
for (i=1; i<=N; ++i) {
if (!viz[i]) {
rez[len+1] = i;
viz[i] = 1;
perm(len+1);
viz[i] = 0;
}
}
}
int main()
{
freopen("permutari.in", "r", stdin);
freopen("permutari.out", "w", stdout);
scanf("%d", &N);
perm(0);
return 0;
}