Cod sursa(job #2916095)

Utilizator vlad2009Vlad Tutunaru vlad2009 Data 28 iulie 2022 00:34:46
Problema Shop Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <algorithm>
#define int long long

using namespace std;

const int MAX_N = 30;

struct Coin {
    int a;
    int b;
    int ind;
};

bool operator < (const Coin &a, const Coin &b) {
    return a.a > b.a;
}

Coin coins[MAX_N + 1];
int answer[MAX_N + 1];
int n, c, l;

signed main() {
    ifstream fin("shop.in");
    ofstream fout("shop.out");
    fin >> n >> c >> l;
    for (int i = 1; i <= n; i++) {
       fin >> coins[i].a >> coins[i].b;
       coins[i].ind = i;
    }
    sort(coins + 1, coins + n + 1);
    int cnt = 0;
    for (int i = 1; i <= n; i++) {
        int power = 1;
        for (int j = 1; j <= coins[i].a; j++) {
            power *= c;
        }
        answer[coins[i].ind] = min(l / power, coins[i].b);
        l -= power * answer[coins[i].ind];
        cnt += answer[coins[i].ind];
    }
    fout << cnt << "\n";
    for (int i = 1; i <= n; i++) {
        fout << answer[i] << " ";
    }
    return 0;
}