#include <cstring> #include <bitset> #include <iostream> using namespace std; #define N 1000004 //#define N 32 static char arr[4][N] = { 0 }; int main() { int n, m; scanf("%d %d", &n, &m); memset (arr[1],'0', 3 * N); for (int i = 0; i < m; i++) { unsigned l, r, c; scanf("%u %u %u ", &l, &r, &c); r++; char *a = &arr[c][0]; memset (a + l,'1', r - l); } std::bitset<N> fin = std::bitset<N>(arr[1]) & std::bitset<N>(arr[2]) & ~std::bitset<N>(arr[3]); printf("%d\n", (int)fin.count()); 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 | #include <cstring> #include <bitset> #include <iostream> using namespace std; #define N 1000004 //#define N 32 static char arr[4][N] = { 0 }; int main() { int n, m; scanf("%d %d", &n, &m); memset (arr[1],'0', 3 * N); for (int i = 0; i < m; i++) { unsigned l, r, c; scanf("%u %u %u ", &l, &r, &c); r++; char *a = &arr[c][0]; memset (a + l,'1', r - l); } std::bitset<N> fin = std::bitset<N>(arr[1]) & std::bitset<N>(arr[2]) & ~std::bitset<N>(arr[3]); printf("%d\n", (int)fin.count()); return 0; } |