Pagini recente » Rating Andrei Rosca (AndreiRCosmin) | Cod sursa (job #144418) | Cod sursa (job #2008588) | Cod sursa (job #2071730) | Cod sursa (job #169344)
Cod sursa(job #169344)
#include<stdio.h>
#define input "combinari.in"
#define output "combinari.out"
#define dim 20
void back();
void init();
void succ();
int valid();
int solutie();
void tipar();
int a[dim];
int n,p,k,st[dim],i,nr=0;
FILE *in, *out;
int main ()
{
in = fopen (input, "r");
out = fopen (output, "w");
fscanf(in, "%d%d", &n, &p);
k=1;
init();
back ();
return 0;
}
void init()
{
st[k] =0;
}
void succ()
{
st[k]++;
}
int valid ()
{
for(i=1;i<k;i++)
if((st[i]==st[k])||(st[i]>st[k]))
return 0;
return 1;
}
int solutie()
{
if(k==p)
return 1;
return 0;
}
void tipar()
{
for(i=1;i<=p;i++)
fprintf(out, "%d ", st[i]);
fprintf(out, "\n");
}
void back()
{ while(k>0)
{
while(st[k]<n)
{
succ();
if (valid())
if(solutie())
tipar();
else
{
k++;
init();
}
}
k--;
}
}