Cod sursa(job #2596306)

Utilizator avtobusAvtobus avtobus Data 9 aprilie 2020 16:08:54
Problema Generare de permutari Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>
#include <bits/stdc++.h>

#define rep(i, n) for(int i = 0; i < n; i++)

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
const int INF = 0x3f3f3f3f;

ifstream fin ("permutari.in");
ofstream fout ("permutari.out");
const int Nmax = 10;

int N;
char vis[Nmax];
int d[Nmax];

void write() {
  rep(i,N) { fout << d[i] << ' '; }
  fout << '\n';
}

void backtrack(int lvl) {
  if (lvl == N) {
    write();
    return;
  }
  rep(i,N) {
    if (!vis[i]) {
      vis[i] = 1;
      d[lvl] = i+1;
      backtrack(lvl+1);
      vis[i] = 0;
    }
  }
}

int main(void) {
  fin >> N;

  rep(i, N) { vis[i] = 0; }
  backtrack(0);

  return 0;
}