#include <bits/stdc++.h>
#define boost \
ios_base::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0)
#define debug(x) cerr << #x << " " << x << endl
#define ll long long
#define st first
#define nd second
const int N = 1e6 + 13;
using namespace std;
int yellow[N], blue[N], red[N];
int n, m, l, r, k, res;
int main() {
boost;
cin >> n >> m;
for (int i = 1; i <= m; i++) {
cin >> l >> r >> k;
if (k == 1) {
yellow[l]++;
yellow[r + 1]--;
} else if (k == 2) {
blue[l]++;
blue[r + 1]--;
} else {
red[l]++;
red[r + 1]--;
}
}
for (int i = 1; i <= n; i++) {
yellow[i] += yellow[i - 1];
blue[i] += blue[i - 1];
red[i] += red[i - 1];
res += (yellow[i] && blue[i] && !red[i]);
}
cout << res << endl;
}
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 | #include <bits/stdc++.h> #define boost \ ios_base::sync_with_stdio(0); \ cin.tie(0); \ cout.tie(0) #define debug(x) cerr << #x << " " << x << endl #define ll long long #define st first #define nd second const int N = 1e6 + 13; using namespace std; int yellow[N], blue[N], red[N]; int n, m, l, r, k, res; int main() { boost; cin >> n >> m; for (int i = 1; i <= m; i++) { cin >> l >> r >> k; if (k == 1) { yellow[l]++; yellow[r + 1]--; } else if (k == 2) { blue[l]++; blue[r + 1]--; } else { red[l]++; red[r + 1]--; } } for (int i = 1; i <= n; i++) { yellow[i] += yellow[i - 1]; blue[i] += blue[i - 1]; red[i] += red[i - 1]; res += (yellow[i] && blue[i] && !red[i]); } cout << res << endl; } |
English