Pagini recente » Cod sursa (job #1052568) | Cod sursa (job #205583) | Cod sursa (job #258891) | Cod sursa (job #26814) | Cod sursa (job #162076)
Cod sursa(job #162076)
#include<stdio.h>
int n,sol[20],m;
int valid(int k){
//verifica daca sol[k] e compatibil cu
//elementele care sunt deja in sol
for(int i=1;i<k;++i)
if(sol[i]>=sol[k])
return 0;
return 1;
}
void scrie(){
for(int i=1;i<m;++i)
printf("%d ",sol[i]);
printf("%d\n",sol[m]);
}
void back(int k){//completeaza sol[k]
if(k==m+1){
//prelucrarea unei solutii
scrie();
return;
}
//aleg un element pentru sol[k]
for(int i=1;i<=n;++i){
sol[k]=i;
if(valid(k))
back(k+1);
}
}
int main(){
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);
scanf("%d%d",&n,&m);
back(1);
return 0;
}