Cod sursa(job #2025275)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 22 septembrie 2017 12:20:48
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#define NMAX 9

using namespace std;

char _stack[NMAX], vf;

ifstream in("permutari.in");
ofstream out("permutari.out");

inline bool ok() {

    for (char i = 1; i < vf; i++)
        if (_stack[i] == _stack[vf])
            return false;
    return true;
}

inline void print() {

    for (char i = 1; i <= vf; i++)
        out << _stack[i] << " ";
    out << "\n";
}

int main() {

    char N;
    in >> N;
    in.close();

    _stack[++vf] = '0';
    while (vf) {

        _stack[vf]++;
        if (_stack[vf] > N)
            vf--;
        else {

            if (ok()) {

                if (vf + '0' == N)
                    print();
                else
                    _stack[++vf] = '0';
            }
        }

    }

    out.close();
    return 0;
}