Pagini recente » Cod sursa (job #1828598) | Cod sursa (job #1783189) | Cod sursa (job #1264427) | Cod sursa (job #1358340) | Cod sursa (job #1453057)
#include <stdio.h>
bool as,ev;
int n,k,p;
void valid(int p, int v[],bool &ev){
int i;
ev = true;
if( p>0 && v[p]<=v[p-1])
ev = false;
}
void suc(int p, int v[], bool &as){
if( v[p]< n-k+p+1){
v[p]++;
as = true;
} else
as = false;
}
void tipar(int p, int v[]){
int i;
for(i = 0 ; i < k; i ++)
printf("%d ", v[i]);
printf("\n");
}
bool solutie(int p)
{
if(p == k-1)
return true;
return false;
}
int main(){
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);
scanf("%d %d ", &n, &k);
int v[n];
p = 0;
v[p] = 0;
while( p>-1 ){
do{
suc(p,v,as);
if(as)
valid(p,v,ev);
}while( as && !(as && ev));
if (as) {
if (solutie(p))
tipar(p,v);
else {
p++;
v[p] = 0;
}
} else
p--;
}
return 0;
}