Pagini recente » Cod sursa (job #3152945) | Cod sursa (job #2645331) | Cod sursa (job #1777667) | Cod sursa (job #71272) | Cod sursa (job #93631)
Cod sursa(job #93631)
#include <stdio.h>
#include <math.h>
int val[50],nr[50],x[100],n,c,l,numar,fifi=0;
void citire(){
freopen("shop.in","r",stdin);
scanf("%d%d%d",&n,&c,&l);
for(int i=0;i<n;i++){
scanf("%d",&val[i]);
scanf("%d",&nr[i]);
}
}
void afisare(){
printf("%d\n",fifi);
for (int i=0;i<n;i++)
printf("%d ",x[i]);
printf("\n");
}
void back(int k)
{
if (k==n)
{
if(l==numar)
afisare();
return;
}
for (int v=0;v<=nr[k];v++)
if (numar+val[k]*v<=l)
{
x[k]=v;
numar+=pow(c,val[k])*v;
fifi+=v; //fifi numara cate monezi am utilizat
back(k+1);
numar-=pow(c,val[k])*v;
fifi-=v;
}
}
int main(){
citire();
freopen("shop.out","w",stdout);
back(0);
fclose(stdout);
return 0;
}