3610 2023. 03. 01 10:16:35 Error42 Szörnyek cpp17 Elfogadva 100/100 34ms 6936 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 Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1828 KiB
2 Elfogadva 3ms 2056 KiB
subtask2 13/13
3 Elfogadva 3ms 2376 KiB
4 Elfogadva 3ms 2476 KiB
5 Elfogadva 2ms 2508 KiB
6 Elfogadva 3ms 2496 KiB
subtask3 22/22
7 Elfogadva 3ms 2504 KiB
8 Elfogadva 3ms 2528 KiB
9 Elfogadva 3ms 2724 KiB
10 Elfogadva 3ms 2812 KiB
11 Elfogadva 3ms 2952 KiB
12 Elfogadva 3ms 3088 KiB
13 Elfogadva 3ms 3196 KiB
14 Elfogadva 3ms 3420 KiB
subtask4 65/65
15 Elfogadva 32ms 6284 KiB
16 Elfogadva 28ms 6588 KiB
17 Elfogadva 27ms 6432 KiB
18 Elfogadva 34ms 6428 KiB
19 Elfogadva 34ms 6432 KiB
20 Elfogadva 34ms 6484 KiB
21 Elfogadva 34ms 6624 KiB
22 Elfogadva 34ms 6664 KiB
23 Elfogadva 30ms 6936 KiB
24 Elfogadva 32ms 6772 KiB