57462023-09-15 18:34:08kukkermanÁruszállítás üres szakaszaicpp17Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/03ms1812 KiB
2Accepted0/082ms3480 KiB
3Accepted2/22ms2220 KiB
4Accepted2/22ms2432 KiB
5Accepted2/22ms2584 KiB
6Accepted2/22ms2624 KiB
7Accepted2/22ms2748 KiB
8Accepted2/23ms2968 KiB
9Accepted2/23ms3044 KiB
10Accepted2/23ms3240 KiB
11Accepted2/23ms3472 KiB
12Accepted2/23ms3540 KiB
13Accepted3/37ms3816 KiB
14Accepted3/38ms3844 KiB
15Accepted3/36ms3832 KiB
16Accepted3/364ms5136 KiB
17Accepted3/365ms5368 KiB
18Accepted3/375ms5296 KiB
19Accepted3/38ms4404 KiB
20Accepted3/39ms4360 KiB
21Accepted3/374ms5556 KiB
22Accepted3/376ms5552 KiB