Cod sursa(job #1653361)
Utilizator | Data | 15 martie 2016 21:51:25 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.81 kb |
#include <iostream>
#include <stdio.h>
using namespace std;
int n, k, i, x[9];
bool in_stack[9];
FILE *f;
int main()
{
f = fopen("permutari.in", "r");
fscanf(f, "%d", &n);
f = freopen("permutari.out", "w", f);
k = 1;
x[1] = 0;
while(k > 0)
{
while(x[k] < n)
{
++x[k];
if(!in_stack[x[k]])
if(k == n)
{
for(i = 1; i<=n; ++i)
fprintf(f, "%d ", x[i]);
fprintf(f, "\n");
}
else
{
in_stack[x[k]] = true;
++k;
x[k] = 0;
}
}
--k;
in_stack[x[k]] = false;
}
fclose(f);
return 0;
}