#include <stdio.h>
#include <vector>
using namespace std;
int main(int argc, const char * argv[]) {
unsigned int n,m,counter = 0;
unsigned short l,r,k,t,colors = 0;
scanf("%d %d", &n, &m);
vector<unsigned short> colorsB(n);
for (int i = 0; i < m; i++) {
scanf("%hu %hu %hu", &l, &r, &k);
t = 1 << (2 *(k - 1));
colorsB[l - 1] |= t;
colorsB[r - 1] |= 2 * t;
}
for (int i = 0; i < n; i++) {
colors = colors | (colorsB[i] & 21);
if (colors == 5) counter++;
colors = colors & ~((colorsB[i] / 2) & 21);
}
printf("%d\n", counter);
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 | #include <stdio.h> #include <vector> using namespace std; int main(int argc, const char * argv[]) { unsigned int n,m,counter = 0; unsigned short l,r,k,t,colors = 0; scanf("%d %d", &n, &m); vector<unsigned short> colorsB(n); for (int i = 0; i < m; i++) { scanf("%hu %hu %hu", &l, &r, &k); t = 1 << (2 *(k - 1)); colorsB[l - 1] |= t; colorsB[r - 1] |= 2 * t; } for (int i = 0; i < n; i++) { colors = colors | (colorsB[i] & 21); if (colors == 5) counter++; colors = colors & ~((colorsB[i] / 2) & 21); } printf("%d\n", counter); return 0; } |
English