Pagini recente » Cod sursa (job #3146360) | Cod sursa (job #2719893) | Cod sursa (job #3237896) | Cod sursa (job #2522800) | Cod sursa (job #3279511)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");
pair<long long, long long> mon[32];
long long n, c, l, i, j, fr[32];
long long rasp[32], nrm;
static inline long long Put(long long a, long long n) {
long long p = 1;
while(n) {
if(n & 1) p *= a;
a *= a;
n >>= 1;
}
return p;
}
int main() {
fin >> n >> c >> l;
for(i = 1; i <= n; i++) {
long long a, b;
fin >> a >> b;
fr[a] += b;
mon[i] = {a, i};
}
sort(mon + 1, mon + n + 1);
for(i = n; i >= 1; i--) {
long long cur = Put(c, mon[i].first);
long long mi = min(fr[mon[i].first], l / cur);
l -= mi * cur;
rasp[mon[i].second] = mi;
nrm += mi;
}
fout << nrm << "\n";
for(i = 1; i <= n; i++) fout << rasp[i] << " ";
return 0;
}