144652025-01-10 21:52:22zedÁruszállítás üres szakaszaicpp17Accepted 50/5093ms8164 KiB
#include <bits/stdc++.h>
using namespace std;

int main(){  // solution with sorting and merging the intervals until only non-overlapping
    // intervals are left
    int n, m;
    cin >> n >> m;
    vector<int> deltas(n+1, 0);
    for (int i=0;i<m;i++){
        int left, right;
        cin >> left >> right;
        deltas[left]++;
        deltas[right]--;
    }

    vector<int> counts(n, 0);
    for (int i=1;i<n;i++){
        counts[i] = counts[i-1] + deltas[i];
    }
    // we count how many times the train becomes empty - in other words
    // when its count of packages goes from nonzero to zero.
    // To handle the case when the trains starts empty correctly, we set
    // counts[0] to nonzero.
    counts[0] = 1;
    int result = 0;
    for (int i=1;i<n;i++){
        if(counts[i-1] > 0 and counts[i] == 0) result++;
    }
    cout << result;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms316 KiB
2Accepted0/093ms7988 KiB
3Accepted2/21ms508 KiB
4Accepted2/21ms316 KiB
5Accepted2/21ms316 KiB
6Accepted2/21ms356 KiB
7Accepted2/21ms316 KiB
8Accepted2/21ms316 KiB
9Accepted2/21ms316 KiB
10Accepted2/21ms316 KiB
11Accepted2/21ms688 KiB
12Accepted2/22ms1076 KiB
13Accepted3/36ms1076 KiB
14Accepted3/38ms1844 KiB
15Accepted3/36ms1844 KiB
16Accepted3/364ms8160 KiB
17Accepted3/365ms8156 KiB
18Accepted3/376ms8164 KiB
19Accepted3/310ms3380 KiB
20Accepted3/312ms4168 KiB
21Accepted3/378ms7988 KiB
22Accepted3/376ms8160 KiB