Pagini recente » Cod sursa (job #2232163) | Cod sursa (job #3240747) | Cod sursa (job #752364) | Cod sursa (job #1163117) | Cod sursa (job #845643)
Cod sursa(job #845643)
#include <fstream>
using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
short n, k, st[19], niv;
void init()
{
st[niv] = st[niv-1];
}
bool succesor()
{
if (st[niv]<n)
{
++st[niv];
return 1;
}
return 0;
}
bool solutie()
{
return niv>k;
}
void tipar()
{
for (int i=1; i<=k; i++)
g<<st[i]<<" ";
g<<'\n';
}
bool valid()
{
if (niv>1)
{
for (int i=1; i<niv; i++)
if (st[i] == st[niv])
return 0;
// if (st[niv] < st[niv-1])
// return 0;
}
return 1;
}
int main()
{
f>>n>>k;
niv = 1;
init();
while (niv)
{
bool ok=false;
while (!ok && succesor())
{
if (valid())
{
niv++;
init();
ok = true;
}
}
if (!ok)
niv--;
else
if (solutie())
{
tipar();
niv--;
}
}
return 0;
}