33532023-02-27 10:48:32norbertvidaÁruszállítás üres szakaszaicpp17Accepted 50/5034ms6424 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";
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/03ms1828 KiB
2Accepted0/034ms4180 KiB
3Accepted2/23ms2328 KiB
4Accepted2/23ms2460 KiB
5Accepted2/23ms2684 KiB
6Accepted2/23ms2888 KiB
7Accepted2/23ms3092 KiB
8Accepted2/23ms3304 KiB
9Accepted2/23ms3632 KiB
10Accepted2/23ms3768 KiB
11Accepted2/23ms3860 KiB
12Accepted2/23ms3984 KiB
13Accepted3/34ms4216 KiB
14Accepted3/34ms4224 KiB
15Accepted3/34ms4224 KiB
16Accepted3/327ms5992 KiB
17Accepted3/327ms6000 KiB
18Accepted3/330ms6252 KiB
19Accepted3/34ms4432 KiB
20Accepted3/34ms4688 KiB
21Accepted3/330ms6416 KiB
22Accepted3/332ms6424 KiB