Pagini recente » Cod sursa (job #131010) | Cod sursa (job #192271) | Cod sursa (job #2592891) | Cod sursa (job #2981491) | Cod sursa (job #1010679)
#include <iostream>
#include <fstream>
std::ifstream fin("permutari.in");
std::ofstream fout("permutari.out");
void printSol(int n, int s[])
{
for(int i = 1; i <= n; i++)
{
fout<<s[i]<<' ';
}
fout<<'\n';
}
bool succesor(int k, int n, int s[])
{
if(s[k] < n)
{
s[k]++;
return true;
}
return false;
}
bool valid(int k, int s[])
{
for(int i = 1; i < k; i++)
{
if(s[i] == s[k])
{
return false;
}
}
return true;
}
void back(int k, int n, int s[])
{
if(k == n + 1)
{
printSol(n, s);
}
else
{
s[k] = 0;
while(succesor(k, n, s))
{
if(valid(k, s))
{
back(k+1, n, s);
}
}
}
}
int main()
{
int n, s[9];
fin>>n;
back(1, n, s);
return 0;
}