Pagini recente » Cod sursa (job #409276) | Cod sursa (job #130282) | Cod sursa (job #1403373) | Cod sursa (job #427483) | Cod sursa (job #232533)
Cod sursa(job #232533)
#include<stdio.h>
int n,k,K,i;
int *stiva;
FILE *pout;
void init()
{stiva[k]=stiva[k-1];}
bool Am_Succesor()
{
if(stiva[k]<n)
{stiva[k]++;
return 1;}
return 0;
}
bool E_Valid()
{
for(i=1;i<k;i++)
if(stiva[i]==stiva[k])
return 0;
return 1;
}
bool Solutie()
{return k==K;}
void Tipar()
{
for(i=1;i<=K;i++)
fprintf(pout,"%d ",stiva[i]);
fprintf(pout,"\n");
}
void back()
{
k=1;
bool AS;
init();
while(k>=1)
{
do {} while((AS=Am_Succesor()) && !E_Valid());
if(AS)
if(Solutie()) Tipar();
else {k++; init();}
else k--;
}
}
int main()
{
FILE *pin=fopen("combinari.in","r");
fscanf(pin,"%d",&n);
fscanf(pin,"%d",&K);
fclose(pin);
stiva=new int[n+1];
stiva[0]=0;
pout=fopen("combinari.out","w");
back();
fclose(pout);
delete []stiva;
return 0;
}