Cod sursa(job #93631)

Utilizator mircea_infoSuciu Mircea-Gabriel mircea_info Data 19 octombrie 2007 17:38:23
Problema Shop Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#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;
}