Pagini recente » Cod sursa (job #2612572) | Cod sursa (job #2114486) | Cod sursa (job #261200) | Cod sursa (job #497903) | Cod sursa (job #365759)
Cod sursa(job #365759)
#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();
if (alfa[x].a==0) break;
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=0;
}
f2<<nr<<"\n";
for (i=1; i<=n; i++) f2<<sol[i]<<" ";
return 0;
}