Cod sursa(job #2572013)

Utilizator tangerine515Alex Anton tangerine515 Data 5 martie 2020 11:14:17
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb

#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int N;
vector<int> st;

int chek(int k) {
    for (int i = 0; i < k; ++i)
        if (st[i] == st[k]) return 0;
    return 1;
}

int bak(ofstream &outp) {
    int k = 0;
    while (k >= 0) {
        if (k == N) {
            for (int i : st)
                outp << i << " ";
            outp << "\n";
            k--;
        }
        else {
            if (st[k] < N) {
                st[k]++;
                if (chek(k))
                    k++;
            }
            else {
                st[k] = 0;
                k--;
            }
        }
    }
    return 0;
}

int main() {
    ifstream fi("permutari.in");
    ofstream fo("permutari.out");

    fi >> N;
    st.resize(N);
    fill(st.begin(), st.end(), 0);

    bak(fo);

    fo.close();
    fi.close();
    return 0;
}