Pagini recente » Cod sursa (job #797187) | Cod sursa (job #1238277) | Cod sursa (job #1682804) | Cod sursa (job #9796) | Cod sursa (job #711176)
Cod sursa(job #711176)
#include<cstdio>
#include<fstream>
using namespace std;
short n,ST[18],k;
bool as,ev;
short p;
void init()
{
ST[k]=0;
}
void succ()
{
if(ST[k]<n)
{
ST[k]++;
as=1;
}
else as=0;
}
void valid()
{
ev=1;
for(short i=1;i<k;i++)
if(ST[i]==ST[k])
ev=0;
for(short i=1;i<k;i++)
if(ST[i]>=ST[i+1])
ev=0;
}
void tipar()
{
for(short i=1;i<=k;i++)
printf("%d ",ST[i]);
printf("\n");
}
int sol()
{
return (k==p);
}
void back()
{
k=1;
init();
while(k)
{
do{
succ();
if(as)
valid();
}
while(as && !ev);
if(as) if(sol())
tipar();
else{
k++; init();
}
else k--;
}
}
int main()
{
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);
scanf("%d %d",&n,&p);
back();
return 0;
}