Cod sursa(job #2818653)

Utilizator Toaster_KeyboardMihaescu Vlad-Mihai Toaster_Keyboard Data 16 decembrie 2021 16:53:14
Problema Generare de permutari Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");

void permutari(vector<int>& arr, size_t size, size_t permCtr) {
    if (permCtr == size) {
        for (size_t j = 0; j < size; ++j)
            fout << arr[j] << ' ';
        fout << '\n';
        return;
    }
    else {
        for (size_t j = permCtr; j < size; ++j) {
            swap(arr[permCtr], arr[j]);
            permutari(arr, size, permCtr + 1);
            swap(arr[j], arr[permCtr]);
        }
    }
}

void solve() {
    int nrPerm;
    fin >> nrPerm;
    vector<int> ans(nrPerm);
    for (int i = 0; i < nrPerm; ++i)  ans[i] = i + 1;
    permutari(ans, nrPerm, 0);
}

int main() {
    ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);

    int t = 1;  //cin >> t;
    while (t--)
    {
        solve();
    }

    return 0;
}