Pagini recente » Cod sursa (job #2269897) | Profil risenshine | Istoria paginii preoni-2008/runda-4/10 | Cod sursa (job #3136992) | Cod sursa (job #2684789)
#include <stdio.h>
#include <stdlib.h>
#define N_MAX 18
int v[N_MAX];
void combinari(int i,int n,int k,FILE *fout){
int j;
if(i>-1){
if(i==(k-1)){
v[i]++;
while(v[i]<=n){
for(j=0;j<k;j++){
fprintf(fout,"%d ",v[j]);
}
fprintf(fout,"\n");
v[i]++;
}
v[i]--;
combinari(i-1,n,k,fout);
}else{
v[i]++;
for(j=i+1;j<k;j++){
v[j]=v[j-1]+1;
}
for(j=0;j<k;j++){
fprintf(fout,"%d ",v[j]);
}
fprintf(fout,"\n");
if(v[k-1]==n){
combinari(i-1,n,k,fout);
}else{
combinari(k-1,n,k,fout);
}
}
}
}
int main()
{
FILE *fin,*fout;
int n,k,j;
fin=fopen("combinari.in","r");
fscanf(fin,"%d%d",&n,&k);
fclose(fin);
fout=fopen("combinari.out","w");
for(j=0;j<k;j++){
v[j]=j+1;
fprintf(fout,"%d ",v[j]);
}
fprintf(fout,"\n");
if(v[k-1]!=n){
combinari(k-1,n,k,fout);
}
fclose(fout);
return 0;
}