Pagini recente » Cod sursa (job #359104) | Cod sursa (job #1317168) | Cod sursa (job #2208574) | Cod sursa (job #1640230) | Cod sursa (job #660964)
Cod sursa(job #660964)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
long long lgpow (long long b,long long p) {
long long x,r;
for (x=b,r=1;p>0;p>>=1) {
if ((p & 1) !=0)
r=r*x;
x=x*x;
}
return r;
}
struct mon {
long long v,d;
};
mon a[31];
long long n,l,c,ANS,VANS[31],p,i;
long long r[31];
bool comp(int x,int y) {
return a[x].v>a[y].v;
}
int main () {
f >> n >> c >> l;
for (i=1;i<=n;i++) {
f >> a[i].v >> a[i].d;
a[i].v=lgpow(c,a[i].v);
r[i]=i;
}
sort(r+1,r+n+1,comp);
for (i=1;i<=n && l>0;i++) {
p=min(l/a[r[i]].v,a[r[i]].d);
l-=p*a[r[i]].v;
ANS+=p;
VANS[r[i]]=p;
}
g << ANS << '\n';
for (i=1;i<=n;i++) g << VANS[i] << ' ';
g << '\n';
f.close();g.close();
return 0;
}