Pagini recente » Cod sursa (job #1897374) | Cod sursa (job #405256) | Cod sursa (job #1577681) | Cod sursa (job #2967383) | Cod sursa (job #446269)
Cod sursa(job #446269)
#include<stdio.h>
int n,st[100], k, p;
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==1){
if(solutie()==1){
afisare();
}
else{
k++;
st[k]=0;
}
}
else{
k--;
}
}
}
int main()
{
freopen ("combinari.in", "r", stdin);
freopen ("combinari.out", "w", stdout);
int i;
scanf("%d %d", &n, &p);
for(i=1; i<=n; i++){
st[i]=i;
}
back();
return 0;
}