Pagini recente » Cod sursa (job #3236758) | Cod sursa (job #2597627) | Cod sursa (job #1801793) | Cod sursa (job #85641) | Cod sursa (job #1630616)
#include <fstream>
#define NMAX 20
using namespace std;
ifstream f("submultimi.in");
ofstream g("submultimi.out");
int n, v[NMAX], level = 1, fr[NMAX];
void afisare()
{
for (int i = 1; i <= level; ++ i)
g << v[i] << " ";
g << '\n';
}
bool ok()
{
for (int i = 1; i <= n; ++ i)
fr[i] = 0;
for (int i = 1; i <= level; ++ i)
{
fr[v[i]] ++;
if (fr[v[i]] > 1)
return 0;
}
return 1;
}
void backtracking()
{
while (level)
{
bool check = 0;
while (!check && v[level] < n)
{
v[level] ++;
check = ok();
}
if (!check)
level --;
else
if (check)
{
afisare();
v[++ level] = v[level - 1];
}
}
}
int main()
{
f >> n;
backtracking();
return 0;
}