#include <bits/stdc++.h>
using namespace std;
#define MAXN 1000000 + 10
int n, m, l, r, k;
int tab[MAXN][3];
int akt[3];
int main() {
cin >> n >> m;
while(m--) {
cin >> l >> r >> k;
tab[l - 1][k - 1]++;
tab[r][k - 1]--;
}
//cout << "\n";
//for (int i = 0; i <= n; i++) {
// cout << tab[i][0] << " " << tab[i][1] << " " << tab[i][2] << "\n";
//}
int result = 0;
for (int i = 0; i < n; i++) {
akt[0] += tab[i][0];
akt[1] += tab[i][1];
akt[2] += tab[i][2];
if (akt[0] > 0 && akt[1] > 0 && akt[2] == 0)
result += 1;
}
cout << result;
}
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 | #include <bits/stdc++.h> using namespace std; #define MAXN 1000000 + 10 int n, m, l, r, k; int tab[MAXN][3]; int akt[3]; int main() { cin >> n >> m; while(m--) { cin >> l >> r >> k; tab[l - 1][k - 1]++; tab[r][k - 1]--; } //cout << "\n"; //for (int i = 0; i <= n; i++) { // cout << tab[i][0] << " " << tab[i][1] << " " << tab[i][2] << "\n"; //} int result = 0; for (int i = 0; i < n; i++) { akt[0] += tab[i][0]; akt[1] += tab[i][1]; akt[2] += tab[i][2]; if (akt[0] > 0 && akt[1] > 0 && akt[2] == 0) result += 1; } cout << result; } |
English