154482025-02-19 16:34:42PKBZebra (75 pont)cpp17Hibás válasz 0/751ms548 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct Gyalogos {
    int irany;
    int erkezes;
};

int main() {
    int N;
    cin >> N;
    vector<Gyalogos> gyalogosok(N);
    for (int i = 0; i < N; ++i) {
        cin >> gyalogosok[i].irany;
    }
    for (int i = 0; i < N; ++i) {
        cin >> gyalogosok[i].erkezes;
    }

    vector<int> balrol, jobbra;
    for (const auto& gyalogos : gyalogosok) {
        if (gyalogos.irany == 0) {
            balrol.push_back(gyalogos.erkezes);
        } else {
            jobbra.push_back(gyalogos.erkezes);
        }
    }

    sort(balrol.begin(), balrol.end());
    sort(jobbra.begin(), jobbra.end());

    int i = 0, j = 0;
    int ossz_varakozas = 0;
    int aktualis_ido = 0;

    while (i < balrol.size() && j < jobbra.size()) {
        int bal_erkezes = balrol[i];
        int jobb_erkezes = jobbra[j];

        aktualis_ido = max(aktualis_ido, min(bal_erkezes, jobb_erkezes));

        if (bal_erkezes <= aktualis_ido) {
            ossz_varakozas += aktualis_ido - bal_erkezes;
            ++i;
        }
        if (jobb_erkezes <= aktualis_ido) {
            ossz_varakozas += aktualis_ido - jobb_erkezes;
            ++j;
        }

        if (i < balrol.size() && j < jobbra.size() && balrol[i] <= aktualis_ido && jobbra[j] <= aktualis_ido) {
            ++i;
            ++j;
        }
    }

    while (i < balrol.size()) {
        ossz_varakozas += aktualis_ido - balrol[i];
        ++i;
    }
    while (j < jobbra.size()) {
        ossz_varakozas += aktualis_ido - jobbra[j];
        ++j;
    }

    cout << ossz_varakozas << endl;

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/75
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/01ms500 KiB
3Hibás válasz0/51ms316 KiB
4Hibás válasz0/51ms328 KiB
5Hibás válasz0/51ms316 KiB
6Hibás válasz0/51ms316 KiB
7Hibás válasz0/51ms316 KiB
8Hibás válasz0/51ms316 KiB
9Hibás válasz0/51ms316 KiB
10Hibás válasz0/51ms316 KiB
11Hibás válasz0/51ms316 KiB
12Hibás válasz0/51ms316 KiB
13Hibás válasz0/51ms316 KiB
14Hibás válasz0/51ms316 KiB
15Hibás válasz0/51ms316 KiB
16Hibás válasz0/51ms404 KiB
17Hibás válasz0/51ms548 KiB