Cod sursa(job #1653361)

Utilizator FragentisMihai Petru Fragentis 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;
}