Cod sursa(job #2177377)

Utilizator Constantin.Dragancea Constantin Constantin. Data 18 martie 2018 15:08:37
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#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;
}