Pagini recente » Cod sursa (job #1114976) | Cod sursa (job #1781845) | Cod sursa (job #940114) | Cod sursa (job #3294540) | Cod sursa (job #3200740)
#include <iostream>
#include <fstream>
#include <map>
using namespace std;
int n, v[21];
ifstream fin("submultimi.in");
ofstream fout("submultimi.out");
bool valid(int k)
{
int i;
for (i = 1; i < k; i++)
if (v[k] == v[i])
return false;
return true;
}
bool succesor(int k)
{
if (v[k] < n)
{
v[k]++;
return true;
}
return false;
}
void afisare(int k)
{
int i;
for (i = 1; i <= k; i++)
fout << v[i] << ' ';
fout << '\n';
}
void bkt(int k)
{
v[k] = 0;
while (k > 0)
{
bool is_succesor = true;
bool is_valid = false;
while (is_succesor && !is_valid)
{
is_succesor = succesor(k);
if (is_succesor)
is_valid = valid(k);
}
if (!is_succesor)
k--;
else
{
afisare(k);
k++;
v[k] = v[k - 1];
}
}
}
int main()
{
fin >> n;
bkt(1);
return 0;
}