Cod sursa(job #2572191)

Utilizator tangerine515Alex Anton tangerine515 Data 5 martie 2020 12:02:34
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb

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

using namespace std;

int N;
unsigned used = 0U;
vector<int> st;

int bak(ofstream &outp, int k) {
    if (k == N) {
        for (int i : st)
            outp << i << " ";
        outp << "\n";
        return 0;
    }
    for (int i = 0; i < N; ++i) {
        if (!((used >> i) & 1)) {
            used ^= (1 << i);
            st[k] = i+1;
            bak(outp, k+1);
            used ^= (1 << i);
        }
    }
    return 0;
}

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

    fi >> N;
    st = vector<int>(N);
    fill(st.begin(), st.end(), 0);

    bak(fo, 0);

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