113622024-08-26 01:44:21kukkermanOsztozkodás (75 pont)cpp17Elfogadva 75/7563ms1648 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdint>

void beolvas(std::istream &be, std::vector<int> &a, int &k) {
    int n;
    be >> n >> k;

    a.resize(n);
    for (auto &e : a) {
        be >> e;
    }
}

void feldolgoz(std::vector<int> &a, int k) {
    const auto n = static_cast<int>(a.size());

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

    std::vector<int64_t> bal_osszeg(n);
    bal_osszeg[0] = a[0];
    for (int i = 1; i < n; i++) {
        bal_osszeg[i] += bal_osszeg[i - 1] + a[i];
    }

    int64_t pontok[2] = { 0, 0 };
    int j = 0;
    for (int i = n - 1; i >= 0; i--) {
        if (i < k && a[i] < bal_osszeg[i]) {
            pontok[j] += bal_osszeg[i];
            break;
        }

        pontok[j] += a[i];
        j = 1 - j;
    }

    std::cout << pontok[0] << ' ' << pontok[1] << '\n';
}

int main() {
    std::vector<int> a;
    int k;
    beolvas(std::cin, a, k);

    feldolgoz(a, k);

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base75/75
1Elfogadva0/02ms360 KiB
2Elfogadva0/02ms360 KiB
3Elfogadva2/22ms360 KiB
4Elfogadva3/33ms384 KiB
5Elfogadva3/32ms384 KiB
6Elfogadva2/24ms360 KiB
7Elfogadva3/34ms376 KiB
8Elfogadva2/24ms360 KiB
9Elfogadva3/34ms360 KiB
10Elfogadva2/24ms496 KiB
11Elfogadva3/34ms376 KiB
12Elfogadva1/159ms1512 KiB
13Elfogadva2/259ms1444 KiB
14Elfogadva1/159ms1512 KiB
15Elfogadva2/259ms1648 KiB
16Elfogadva1/135ms1448 KiB
17Elfogadva2/243ms1644 KiB
18Elfogadva1/135ms1512 KiB
19Elfogadva2/229ms1512 KiB
20Elfogadva2/228ms1564 KiB
21Elfogadva3/348ms1436 KiB
22Elfogadva2/241ms1440 KiB
23Elfogadva3/345ms1512 KiB
24Elfogadva2/248ms1436 KiB
25Elfogadva3/350ms1552 KiB
26Elfogadva2/248ms1532 KiB
27Elfogadva3/363ms1440 KiB
28Elfogadva2/263ms1584 KiB
29Elfogadva3/361ms1536 KiB
30Elfogadva3/32ms232 KiB
31Elfogadva3/32ms360 KiB
32Elfogadva3/33ms384 KiB
33Elfogadva3/32ms504 KiB
34Elfogadva3/32ms376 KiB