#include <bits/stdc++.h> using namespace std; #define fastIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define fi first #define se second #define all(x) begin(x), end(x) #define repeat(i, x) for (int i = 0; i < (x); ++i) pair<int, int> op[int(2e6)+2]; int main() { fastIO; int ans = 0; int curr = 1; int l, r, k; int n, m; cin >> n >> m; repeat(i, m) { cin >> l >> r >> k; op[2*i].fi = l; op[2*i].se = k; op[2*i+1].fi = r+1; op[2*i+1].se = -k; } sort(op, op + 2 * m); int cols[3] = {0,0,0}; for (int i = 0; i < 2 * m; ++i) { if (cols[0] && cols[1] && !cols[2]) ans += op[i].fi - curr; curr = op[i].fi; cols[abs(op[i].se) - 1] += (op[i].se > 0 ? 1 : -1); } cout << ans; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <bits/stdc++.h> using namespace std; #define fastIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define fi first #define se second #define all(x) begin(x), end(x) #define repeat(i, x) for (int i = 0; i < (x); ++i) pair<int, int> op[int(2e6)+2]; int main() { fastIO; int ans = 0; int curr = 1; int l, r, k; int n, m; cin >> n >> m; repeat(i, m) { cin >> l >> r >> k; op[2*i].fi = l; op[2*i].se = k; op[2*i+1].fi = r+1; op[2*i+1].se = -k; } sort(op, op + 2 * m); int cols[3] = {0,0,0}; for (int i = 0; i < 2 * m; ++i) { if (cols[0] && cols[1] && !cols[2]) ans += op[i].fi - curr; curr = op[i].fi; cols[abs(op[i].se) - 1] += (op[i].se > 0 ? 1 : -1); } cout << ans; return 0; } |