Pagini recente » Cod sursa (job #164119) | Cod sursa (job #895974) | Cod sursa (job #1293094) | Cod sursa (job #1289987) | Cod sursa (job #234840)
Cod sursa(job #234840)
#include<stdio.h>
#define N 20
int x[N],viz[N],nrviz,m,n,k,as,a[N*N][N],num;
bool ev;
int main()
{
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);
scanf("%d%d",&m,&n);
k=1;
x[k]=0;
while (k)
{
do
{
if (x[k]<m)
{
as=1;
viz[x[k]]--;
x[k]++;
viz[x[k]]++;
nrviz=0;
for (int i=1; i<=m; ++i)
if (viz[i])
++nrviz;
ev=(nrviz+m-k>=n);
}
else
as=0;
}
while (as&&!ev);
if (as)
if (n==k)
{
int ok=1;
for (int i=1; i<n ;++i)
if (x[i]>=x[i+1]){
ok=0;break;}
if (ok){
for (int i=1; i<=n; ++i)
printf("%d ",x[i]);
printf("\n");
}
}
else
x[++k]=0;
else
{
--viz[x[k]];--k;
}
}
return 0;
}