Cod sursa(job #3355329)

Utilizator lori521Lorena Tanase lori521 Data 22 mai 2026 15:46:42
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <cstdio>
#include <iostream>
#include <vector>

using namespace std;

void backtracking(vector<int> &sol, vector<int> &domain, int n) {
  if (n == sol.size()) {
    for (int i = 0; i < n; i++)
      printf("%d ", sol[i]);
    printf("\n");
    return;
  }

  for (int i = 0; i < domain.size(); i++) {
    /* do */
    int value = domain[i];

    sol.push_back(value);
    domain.erase(domain.begin() + i);

    /* recursion */
    backtracking(sol, domain, n);

    /* undo */
    sol.pop_back();
    domain.insert(domain.begin() + i, value);
  }
}

int main(int argc, char *argv[]) {
  freopen("permutari.in", "r", stdin);
  freopen("permutari.out", "w", stdout);

  int n;
  if (scanf("%d", &n) != 1)
    return 0;
  scanf("%d", &n);

  vector<int> domain;
  vector<int> sol;
  for (int i = 1; i <= n; i++)
    domain.push_back(i);

  backtracking(sol, domain, n);
  return 0;
}