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