Cod sursa(job #2470628)

Utilizator stormy_weatherelena cristina stormy_weather Data 9 octombrie 2019 17:00:17
Problema Generare de permutari Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include<iostream>
#include<vector>
#include<map>
#include<algorithm>
#include<fstream>
using namespace std;

#ifdef INFOARENA
ifstream cin("permutari.in");
ofstream cout("permutari.out");
#endif

int generate_perm(int pos, int n, vector<int> &cur_perm, map<int, int> &options) {
  if (pos == n) {
    for (int i = 0; i < n; i++)
      cout << cur_perm[i] << " ";
    cout << "\n";
    return 1;
  }
  for (int i = 1; i <= n; i++) {
    if (options[i] == 1) {
      options[i] = 0;
      cur_perm[pos] = i;
      generate_perm(pos + 1, n, cur_perm, options);
      options[i] = 1;
    }
  }
  return 1;
}

int main() {
  int n; cin >> n;
  vector<int> cur_perm(n);
  map<int, int> options;
  for (int i = 1; i <= n; i++)
    options[i] = 1;
  generate_perm(0, n, cur_perm, options);
  return 0;
}