Pagini recente » tabletennis | Monitorul de evaluare | Babacu | Clasament .com 2009 | Cod sursa (job #2155196)
#include <fstream>
using namespace std;
ifstream f("combinari.in");
ofstream g("combinari.out");
int k, n, st[16], i, as, ev, p;
void init()
{
st[k] = 0;
}
int succesor()
{
if (st[k]<n)
{
st[k]++;
return 1;
}
else
return 0;
}
int valid()
{
if (k >= 2 && st[k] <= st[k - 1])
return 0;
for (i = 1; i<k; i++)
if (st[i] == st[k])
return 0;
return 1;
}
int solutie()
{
return k == p;
}
void tipar()
{
for (i = 1; i <= p; i++)
g << st[i] << " ";
g << "\n";
}
int main()
{
f >> n >> p;
k = 1;
init();
while (k)
{
do {
as = succesor();
if (as)
ev = valid();
} while (!(as&&ev || !as));
if (as)
{
if (solutie())
tipar();
else
{
k++;
init();
}
}
else
k--;
}
return 0;
}