5746 2023. 09. 15 18:34:08 kukkerman Áruszállítás üres szakaszai cpp17 Elfogadva 50/50 82ms 5556 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 Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1812 KiB
2 Elfogadva 0/0 82ms 3480 KiB
3 Elfogadva 2/2 2ms 2220 KiB
4 Elfogadva 2/2 2ms 2432 KiB
5 Elfogadva 2/2 2ms 2584 KiB
6 Elfogadva 2/2 2ms 2624 KiB
7 Elfogadva 2/2 2ms 2748 KiB
8 Elfogadva 2/2 3ms 2968 KiB
9 Elfogadva 2/2 3ms 3044 KiB
10 Elfogadva 2/2 3ms 3240 KiB
11 Elfogadva 2/2 3ms 3472 KiB
12 Elfogadva 2/2 3ms 3540 KiB
13 Elfogadva 3/3 7ms 3816 KiB
14 Elfogadva 3/3 8ms 3844 KiB
15 Elfogadva 3/3 6ms 3832 KiB
16 Elfogadva 3/3 64ms 5136 KiB
17 Elfogadva 3/3 65ms 5368 KiB
18 Elfogadva 3/3 75ms 5296 KiB
19 Elfogadva 3/3 8ms 4404 KiB
20 Elfogadva 3/3 9ms 4360 KiB
21 Elfogadva 3/3 74ms 5556 KiB
22 Elfogadva 3/3 76ms 5552 KiB