Cod sursa(job #2149447)

Utilizator Alex_BubBuburuzan Alexandru Alex_Bub Data 2 martie 2018 17:18:52
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <algorithm>
#define ull unsigned long long

using namespace std;

ifstream fin("shop.in");
ofstream fout("shop.out");

ull p[33], ans[31];

struct st {int pow; ull cant; int nrcrt;};
st v[31];

bool stcompare(st lhs, st rhs) { return lhs.pow < rhs.pow; }

int main()
{
    int n, i;
    ull l, tip, sol = 0;

    fin >> n >> tip >> l;

    for(i = 0; i < n; i++) {
        fin >> v[i].pow >> v[i].cant;
        v[i].nrcrt = i;
    }

    sort(v, v + n, stcompare);

    p[0] = 1;
    for(i = 1; i < 33; i++)
        p[i] = tip * p[i - 1];


    for(i = n - 1; i > -1 && l; i--) {
        ull k = l / p[v[i].pow];
        k = min(k, v[i].cant);

        ans[v[i].nrcrt] = k;
        l -= p[v[i].pow] * k;
        sol += k;
    }

    fout << sol << '\n';

    for(i = 0; i < n; i++)
        fout << ans[i] << " ";

    return 0;
}