Pagini recente » Cod sursa (job #474989) | Cod sursa (job #2881531) | Monitorul de evaluare | Cod sursa (job #2019566) | Cod sursa (job #2707526)
#include <fstream>
using namespace std;
ifstream in("combinari.in");
ofstream out("combinari.out");
int n,p,st[100],k,as,ev,i;
void succesor()
{
if(st[k]<n-p+k)
{
st[k]++;
as=1;
}
else as=0;
}
void valid ()
{
int i;
ev=1;
for(i=1;i<k;i++)
if(st[i]==st[k])
ev=0;
if(k>1 && st[k]<st[k-1])
ev=0;
}
void bkt(){
k=1;
st[k]=0;
while(k>0)
{
do{
succesor();
if(as)
valid();
}
while (as&&!ev);
if(as)
if(k==p){
for(i=1;i<=p;i++)
out<<st[i]<<' ';
out<<"\n";
}
else{
k++;
st[k]=0;
}
else k--;
}
}
int main()
{
in>>n>>p;
bkt();
return 0;
}