Cod sursa(job #2291692)
Utilizator | Data | 28 noiembrie 2018 15:04:51 | |
---|---|---|---|
Problema | Generare de permutari | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.87 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("permutari.in");
ofstream fout("permutari.out");
int n;
bool flag;
vector <int> perm;
void backtracking(int k)
{
if (k == n)
{
for (int i = 1 ; i <= n; i++)
fout << perm[i] << " ";
fout << "\n";
}
else
{
for (int i = 1; i <= n; i++)
{
flag = true;
for (int j = 1; j <= k; j++)
if (perm[j] == i)
{
flag = false;
break;
}
if (flag)
{
perm[k+1] = i;
backtracking(k+1);
}
}
}
}
int main()
{
fin >> n;
perm.resize(n+1);
backtracking(0);
return 0;
}