Cod sursa(job #3279511)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 23 februarie 2025 13:07:49
Problema Shop Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#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;
}