Cod sursa(job #2209924)

Utilizator CiobaCatalinCioba Catalin CiobaCatalin Data 5 iunie 2018 00:22:32
Problema Generare de permutari Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream in;
ofstream out;
vector<int> v(10);

int n;

void permutations(int n, int cnt) {
  if (cnt == n) {
    for (int i = 0; i < n; ++i)
      out << v[i] << " ";
    out << '\n';
    return;
  }
  for (int i = 1; i <= n; i++) {
    bool ok = true;
    for (int j = 0; j < cnt && ok; ++j) {
      if (v[j] == i)
        ok = false;
    }
    if (ok) {
      v[cnt] = i;
      permutations(n, cnt + 1);
    }
  }
}

void permutations_easy(int n) {
  vector<int> v;
  for (int i = 1; i <= n; ++i)
    v.push_back(i);

  do {
    for (int i = 0; i < n; ++i)
      out << v[i] << " ";
    out << endl;
  } while( next_permutation(v.begin(), v.end()) );
}

int main() {
  std::ios::sync_with_stdio(false);

  in.open("permutari.in");
  out.open("permutari.out");

  in >> n;

  permutations(n, 0);

  in.close();
  out.close();

  return 0;
}