Pagini recente » Cod sursa (job #2363927) | Cod sursa (job #1775357) | Cod sursa (job #2898536) | Cod sursa (job #2679302) | Cod sursa (job #424263)
Cod sursa(job #424263)
#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;
}