Pagini recente » Cod sursa (job #2419582) | Cod sursa (job #674679) | Cod sursa (job #2034555) | Cod sursa (job #3031587) | Cod sursa (job #964428)
Cod sursa(job #964428)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
long long n,c,l;
struct moneda {long long nr,val,poz;};
moneda a[32];
int sol[32], S;
inline long long putere(int apar)
{
int i;
long long sol=1;
for (i=1;i<=apar;i++)
sol*=c;
return sol;
}
inline int cmp (moneda a, moneda b)
{
if (a.val>b.val)
return 1;
return 0;
}
int main()
{
fstream f,g;
f.open("shop.in",ios::in);
g.open("shop.out",ios::out);
f>>n>>c>>l;
int i,x;
for (i=1;i<=n;i++)
{
f>>x>>a[i].nr;
a[i].poz=i;
a[i].val=putere(x);
}
sort(a+1,a+1+n,cmp);
int y;
for (i=1;i<=n;i++)
{
y=l/a[i].val;//cate imi trebuie
if (y>a[i].nr)
y=a[i].nr;// cate am;
l=l-y*a[i].val;
S+=y;
sol[a[i].poz]=y;
}
g<<S<<"\n";
for (i=1;i<=n;i++)
g<<sol[i]<<" ";
}