Pagini recente » Cod sursa (job #2086259) | Cod sursa (job #1952566) | Cod sursa (job #813074) | Cod sursa (job #820007) | Cod sursa (job #2224255)
#include <fstream>
using namespace std;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
int st[10];
int top, i, as, ev, n, k;
void succesor()
{
if(st[top]<n-k+top)
{
st[top]++;
as=1;
}
else
as=0;
}
void valid()
{
ev=1;
for(i=1; i<top; i++)
if(st[top]==st[i])
ev=0;
if(st[top]<st[top-1])
ev=0;
}
void print()
{
for(i=1; i<=k; i++)
fout<<st[i]<<" ";
fout<<"\n";
}
void bkt()
{
top=1;
st[top]=0;
while(top>0){
do
{
succesor();
if(as)
valid();
}while(as && !ev);
if(as)
{
if(top==k)
print();
else
{
top++;
st[top]=0;
}
}
else
top--;
}
}
int main()
{
fin>>n>>k;
bkt();
return 0;
}