Cod sursa(job #403454)
| Utilizator | Data | 24 februarie 2010 22:45:21 | |
|---|---|---|---|
| Problema | Generare de permutari | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include<cstdio>
const int maxn = 30;
int i , j , k , perm[maxn] , n;
bool taken[maxn];
void print() {
int i;
for( i = 1 ; i <= n ; ++i)
printf("%d ",perm[i]);
printf("\n");
}
void back(int p)
{
if ( p == n + 1 ) print();
else
{
int i;
for( i = 1 ; i <= n ; ++i ) {
if ( taken[i] == 0 ) {
taken[i] = 1;
perm[p] = i;
back (p + 1);
taken[i] = 0;
}
}
}
}
int main()
{
freopen("permutari.in","r",stdin);
freopen("permutari.out","w",stdout);
scanf("%d",&n);
back(1);
return 0;
}
