36062023-03-01 10:05:20Error42Szörnyekcpp17Hibás válasz 0/10074ms18248 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1684 KiB
2Elfogadva3ms1848 KiB
subtask20/13
3Elfogadva3ms2196 KiB
4Hibás válasz3ms2404 KiB
5Hibás válasz3ms2608 KiB
6Elfogadva3ms2700 KiB
subtask30/22
7Elfogadva3ms2916 KiB
8Hibás válasz3ms3248 KiB
9Elfogadva3ms3260 KiB
10Hibás válasz3ms3100 KiB
11Hibás válasz3ms3100 KiB
12Hibás válasz3ms3104 KiB
13Hibás válasz3ms3108 KiB
14Hibás válasz3ms3352 KiB
subtask40/65
15Elfogadva72ms7628 KiB
16Hibás válasz61ms8636 KiB
17Elfogadva74ms9888 KiB
18Hibás válasz74ms11112 KiB
19Hibás válasz74ms12344 KiB
20Hibás válasz74ms13376 KiB
21Hibás válasz72ms14324 KiB
22Hibás válasz72ms15676 KiB
23Hibás válasz71ms17024 KiB
24Hibás válasz72ms18248 KiB