Pagini recente » Cod sursa (job #3180148) | Cod sursa (job #104993) | Cod sursa (job #1374781) | Cod sursa (job #1690102) | Cod sursa (job #446279)
Cod sursa(job #446279)
#include<stdio.h>
int n,st[100], k, p;
void Init (){
if (k > 1)
st[k] = st[k-1];
else
st[k] = 0;
}
int evalid(){
int i;
for(i=1; i<k; i++){
if(st[k]==st[i]){
return 0;
}
}
return 1;
}
int succesor(){
if(st[k]<n-p+k){
st[k]++;
return 1;
}
return 0;
}
void afisare(){
int i;
for(i=1; i<=p; i++){
printf("%d ", st[i]);
}
printf("\n");
}
int solutie(){
if(k==p){
return 1;
}
return 0;
}
void back()
{
int as;
k=1;
st[k]=0;
while(k>0){
do{} while((as=succesor()) && !evalid());
if(as){
if(solutie()){
afisare();
}
else{
k++;
Init();
}
}
else{
k--;
}
}
}
int main()
{
freopen ("combinari.in", "r", stdin);
freopen ("combinari.out", "w", stdout);
int i;
scanf("%d %d", &n, &p);
back();
return 0;
}