#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; } |