Pagini recente » Cod sursa (job #1606557) | Cod sursa (job #1264333) | Cod sursa (job #2770688) | Cod sursa (job #2598993) | Cod sursa (job #1413458)
#include <fstream>
#define NMAX 20
using namespace std;
ifstream f("submultimi.in");
ofstream g("submultimi.out");
int i, n, k, v[NMAX];
void afisare()
{
for (int i=1; i<=k; ++i)
g<<v[i]<<" ";
g<<'\n';
}
bool ok()
{
for (int i=1; i<=k-1; ++i)
if (v[i]==v[k]) return 0;
return 1;
}
void backtracking()
{
k=1;
v[1]=0;
while (k)
{
bool gasit=0;
while (!gasit && v[k]<n)
{
v[k]++;
if (ok()) gasit=1;
}
if (!gasit) k--;
else
if (k<=n)
{
afisare();
if (k<n)
k++, v[k]=v[k-1];
}
}
}
int main()
{
f>>n;
backtracking();
return 0;
}