Pagini recente » Cod sursa (job #2311353) | Cod sursa (job #2219143) | Cod sursa (job #1960417) | Cod sursa (job #27295) | Cod sursa (job #2177377)
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll pw[35], l, ans, n, c, sol[35];
struct moneda{
ll x, y, idx;
} a[35];
bool cmp(moneda a, moneda b){
return a.x < b.x;
}
int main(){
ifstream cin ("shop.in");
ofstream cout ("shop.out");
cin >> n >> c >> l;
pw[0] = 1;
for (int i=1; i<=32; i++) pw[i] = pw[i-1] * c;
for (int i=1; i<=n; i++){
ll c, d;
cin >> c >> d;
a[i] = {c, d, i};
}
sort(a+1, a+1+n, cmp);
for (int i=n; i; i--){
sol[a[i].idx] = min(a[i].y, l/pw[a[i].x]);
ans += sol[a[i].idx];
l -= pw[a[i].x] * sol[a[i].idx];
}
cout << ans << "\n";
for (int i=1; i<=n; i++) cout << sol[i] << " ";
return 0;
}