3606 2023. 03. 01 10:05:20 Error42 Szörnyek cpp17 Hibás válasz 0/100 74ms 18248 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() {
    ll n, p;
    cin >> n >> p;

    vector<monster> monsters(n);

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

        m = { a, (d + 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 1684 KiB
2 Elfogadva 3ms 1848 KiB
subtask2 0/13
3 Elfogadva 3ms 2196 KiB
4 Hibás válasz 3ms 2404 KiB
5 Hibás válasz 3ms 2608 KiB
6 Elfogadva 3ms 2700 KiB
subtask3 0/22
7 Elfogadva 3ms 2916 KiB
8 Hibás válasz 3ms 3248 KiB
9 Elfogadva 3ms 3260 KiB
10 Hibás válasz 3ms 3100 KiB
11 Hibás válasz 3ms 3100 KiB
12 Hibás válasz 3ms 3104 KiB
13 Hibás válasz 3ms 3108 KiB
14 Hibás válasz 3ms 3352 KiB
subtask4 0/65
15 Elfogadva 72ms 7628 KiB
16 Hibás válasz 61ms 8636 KiB
17 Elfogadva 74ms 9888 KiB
18 Hibás válasz 74ms 11112 KiB
19 Hibás válasz 74ms 12344 KiB
20 Hibás válasz 74ms 13376 KiB
21 Hibás válasz 72ms 14324 KiB
22 Hibás válasz 72ms 15676 KiB
23 Hibás válasz 71ms 17024 KiB
24 Hibás válasz 72ms 18248 KiB