57462023-09-15 18:34:08kukkermanÁruszállítás üres szakaszaicpp17Elfogadva 50/5082ms5556 KiB
#include <iostream>
#include <vector>
#include <algorithm>

void beolvas(std::istream &in, int &allomasok, std::vector<std::pair<int, int>> &szallitasok) {
    int m;
    in >> allomasok >> m;

    szallitasok.resize(m);
    for (auto i = 0; i < m; i++) {
        int honnan, hova;
        in >> honnan >> hova;

        szallitasok[i] = { honnan, hova };
    }
}

void feldolgoz(int allomasok, std::vector<std::pair<int, int>> &szallitasok) {
    std::sort(szallitasok.begin(), szallitasok.end(), [](const auto &a, const auto &b) {
        return a.first < b.first;
    });

    int ures_szakaszok = 0;
    int ures_poz = 1;
    for (const auto [sz_kezd, sz_veg] : szallitasok) {
        if (sz_kezd <= ures_poz) {
            ures_poz = std::max(ures_poz, sz_veg);

        } else {
            ures_szakaszok++;
            ures_poz = sz_veg;
        }
    }

    if (ures_poz < allomasok) {
        ures_szakaszok++;
    }

    std::cout << ures_szakaszok << std::endl;
}

int main() {
    int allomasok;
    std::vector<std::pair<int, int>> szallitasok;
    beolvas(std::cin, allomasok, szallitasok);
    feldolgoz(allomasok, szallitasok);

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/03ms1812 KiB
2Elfogadva0/082ms3480 KiB
3Elfogadva2/22ms2220 KiB
4Elfogadva2/22ms2432 KiB
5Elfogadva2/22ms2584 KiB
6Elfogadva2/22ms2624 KiB
7Elfogadva2/22ms2748 KiB
8Elfogadva2/23ms2968 KiB
9Elfogadva2/23ms3044 KiB
10Elfogadva2/23ms3240 KiB
11Elfogadva2/23ms3472 KiB
12Elfogadva2/23ms3540 KiB
13Elfogadva3/37ms3816 KiB
14Elfogadva3/38ms3844 KiB
15Elfogadva3/36ms3832 KiB
16Elfogadva3/364ms5136 KiB
17Elfogadva3/365ms5368 KiB
18Elfogadva3/375ms5296 KiB
19Elfogadva3/38ms4404 KiB
20Elfogadva3/39ms4360 KiB
21Elfogadva3/374ms5556 KiB
22Elfogadva3/376ms5552 KiB