3353 2023. 02. 27 10:48:32 norbertvida Áruszállítás üres szakaszai cpp17 Elfogadva 50/50 34ms 6424 KiB
#include <bits/stdc++.h>

using namespace std;

struct iv {
    int k, v;
};

int main() {
    iostream::sync_with_stdio(0);
    cin.tie(0);
    int N, M;
    cin >> N >> M;
    vector<iv> eredeti_intervallumok;
    iv temp;
    for(int i = 0, k, v; i < M; i++) {
        cin >> k >> v;
        temp.k = k;
        temp.v = v;
        eredeti_intervallumok.push_back(temp);
    }
    sort(eredeti_intervallumok.begin(), eredeti_intervallumok.end(), [](const iv &a, const iv &b) -> bool {
        return a.k < b.k;
    });
    vector<iv> egyesitett;
    egyesitett.push_back(eredeti_intervallumok[0]);
    for(int i = 1; i < eredeti_intervallumok.size(); i++) {
        if(eredeti_intervallumok[i].k <= egyesitett[egyesitett.size() - 1].v) {
            egyesitett[egyesitett.size() - 1].v = max(egyesitett[egyesitett.size() - 1].v, eredeti_intervallumok[i].v);
        } else {
            egyesitett.push_back(eredeti_intervallumok[i]);
        }
    }
    int db = 0;
    if(egyesitett[0].k > 1) db++;
    db += egyesitett.size() - 1;
    if(egyesitett[egyesitett.size() - 1].v < N) db++;
    cout << db << "\n";
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1828 KiB
2 Elfogadva 0/0 34ms 4180 KiB
3 Elfogadva 2/2 3ms 2328 KiB
4 Elfogadva 2/2 3ms 2460 KiB
5 Elfogadva 2/2 3ms 2684 KiB
6 Elfogadva 2/2 3ms 2888 KiB
7 Elfogadva 2/2 3ms 3092 KiB
8 Elfogadva 2/2 3ms 3304 KiB
9 Elfogadva 2/2 3ms 3632 KiB
10 Elfogadva 2/2 3ms 3768 KiB
11 Elfogadva 2/2 3ms 3860 KiB
12 Elfogadva 2/2 3ms 3984 KiB
13 Elfogadva 3/3 4ms 4216 KiB
14 Elfogadva 3/3 4ms 4224 KiB
15 Elfogadva 3/3 4ms 4224 KiB
16 Elfogadva 3/3 27ms 5992 KiB
17 Elfogadva 3/3 27ms 6000 KiB
18 Elfogadva 3/3 30ms 6252 KiB
19 Elfogadva 3/3 4ms 4432 KiB
20 Elfogadva 3/3 4ms 4688 KiB
21 Elfogadva 3/3 30ms 6416 KiB
22 Elfogadva 3/3 32ms 6424 KiB