Cod sursa(job #424263)

Utilizator funkydvdIancu David Traian funkydvd Data 24 martie 2010 18:34:34
Problema Shop Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>
using namespace std;
struct monezi {int a,b;};
monezi alfa[40];
ifstream f1 ("shop.in");
ofstream f2 ("shop.out");
long long n,sol[40];
long long putere (long long c, long long k)
{
	long long x=c,i;
	if (k==0) return 1;
	for (i=1; i<k; i++) c=c*x;
	return c;
}
long long maxim()
{
	long long i, x=1;
	for (i=1; i<=n; i++) if (alfa[i].a>alfa[x].a) x=i;
	return x;
}
int main()
{
	long long l,c,nr=0;
	f1>>n>>c>>l;
	long long i,x=0,y,k;
	for (i=1; i<=n; i++)
	{
		f1>>k;
		alfa[i].a=putere(c, k);
		f1>>alfa[i].b;
	}
	while (l>0)
	{
	  x=maxim();
	  y=l/alfa[x].a; 
	  if (y>alfa[x].b) y=alfa[x].b;
	  l-=alfa[x].a*y;
	  nr+=y;
	  sol[x]=y;
	  alfa[x].a=-1;
	}
	f2<<nr<<"\n";
	for (i=1; i<=n; i++) f2<<sol[i]<<" ";
	return 0;
}