Pagini recente » Cod sursa (job #11267) | Cod sursa (job #3290568) | Cod sursa (job #1358034) | Cod sursa (job #2416853) | Cod sursa (job #1751497)
#include <fstream>
#include <queue>
#include <climits>
using namespace std;
void Backtrack(int pos, int n, int* vect, bool* flagList, ostream& fout);
void PrintSolution(int n, int* vect, ostream& fout);
int main()
{
ifstream fin;
ofstream fout;
fout.open("permutari.out");
fin.open("permutari.in");
int n;
fin >> n;
int* vect = new int[n + 1]();
bool* flagVect = new bool[n + 1]();
Backtrack(1, n, vect, flagVect, fout);
fin.close();
fout.close();
return 0;
}
void Backtrack(int pos, int n, int* vect, bool* flagList, ostream& fout)
{
if(pos > n)
{
PrintSolution(n, vect, fout);
}
else
{
for(int i = 1; i <= n; i++)
{
if(flagList[i] == false)
{
flagList[i] = true;
vect[pos] = i;
Backtrack(pos + 1, n, vect, flagList, fout);
flagList[i] = false;
}
}
}
}
void PrintSolution(int n, int* vect, ostream& fout)
{
for(int i = 1; i <= n; i++)
{
fout << vect[i] << " ";
}
fout << "\n";
}