Pagini recente » Cod sursa (job #1748698) | Cod sursa (job #2068640) | Cod sursa (job #779689) | Cod sursa (job #1290265) | Cod sursa (job #2374979)
#include <iostream>
#include <fstream>
using namespace std;
int N,K,sol[20],c;
ofstream g("combinari.out");
void init()
{
sol[c]=0;
}
int succesor()
{
if(sol[c]<N)
{
sol[c]++;
return 1;
}
return 0;
}
int valid()
{
if(c>1)
for(int i=1;i<c;i++)
if(sol[i]>=sol[c])
return 0;
return 1;
}
int solutie()
{
if(c==K)
return 1;
return 0;
}
void afisare()
{
for(int i=1;i<=K;i++)
g<<sol[i]<<" ";
g<<'\n';
}
void bkt()
{
c=1;
init();
while(c>0)
{
int as=1,ev=0;
while(as && !ev)
{
as=succesor();
if(as)
ev=valid();
}
if(as)
if(solutie())
afisare();
else
{
c++;
init();
}
else
c--;
}
}
int main()
{
ifstream f("combinari.in");
f>>N>>K;
f.close();
bkt();
return 0;
}