36102023-03-01 10:16:35Error42Szörnyekcpp17Elfogadva 100/10034ms6936 KiB
#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>

using namespace std;

using ll = long long;

struct monster {
    ll attack;
    ll hits;

    bool operator <(monster const& rhs) const {
        return attack * rhs.hits < rhs.attack * hits;
    }
};

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);

    ll n, p;
    cin >> n >> p;

    vector<monster> monsters(n);

    for (monster& m : monsters) {
        ll a, d;
        cin >> a >> d;

        m = { d, (a + p - 1) / p };
    }

    sort(monsters.begin(), monsters.end());

    ll ans = 0;
    ll dmg = 0;

    for (monster const& m : monsters) {
        dmg += m.attack;

        ans += dmg * m.hits;
    }

    ans -= dmg;

    cout << ans << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1828 KiB
2Elfogadva3ms2056 KiB
subtask213/13
3Elfogadva3ms2376 KiB
4Elfogadva3ms2476 KiB
5Elfogadva2ms2508 KiB
6Elfogadva3ms2496 KiB
subtask322/22
7Elfogadva3ms2504 KiB
8Elfogadva3ms2528 KiB
9Elfogadva3ms2724 KiB
10Elfogadva3ms2812 KiB
11Elfogadva3ms2952 KiB
12Elfogadva3ms3088 KiB
13Elfogadva3ms3196 KiB
14Elfogadva3ms3420 KiB
subtask465/65
15Elfogadva32ms6284 KiB
16Elfogadva28ms6588 KiB
17Elfogadva27ms6432 KiB
18Elfogadva34ms6428 KiB
19Elfogadva34ms6432 KiB
20Elfogadva34ms6484 KiB
21Elfogadva34ms6624 KiB
22Elfogadva34ms6664 KiB
23Elfogadva30ms6936 KiB
24Elfogadva32ms6772 KiB