#include <cstdio>
int n, m;
int tab[1000001][6];
int main() {
scanf ("%d %d", &n, &m);
for (int i = 0; i < n; ++i) {
tab[i][0] = tab[i][1] = tab[i][2] = tab[i][3] = tab[i][4] = tab[i][5] = 0;
}
for (int i = 0; i < m; ++i) {
int left, right, color;
scanf("%d %d %d", &left, &right, &color);
--left, --right, --color;
++tab[left][color];
++tab[right][3 + color];
}
int total = 0;
int C[3];
C[0] = C[1] = C[2] = 0;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < 3; ++j) C[j] += tab[i][j];
if (C[0] > 0 && C[1] > 0 && C[2] == 0) ++total;
for (int j = 0; j < 3; ++j) C[j] -= tab[i][3 + j];
}
printf("%d\n", total);
}
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 | #include <cstdio> int n, m; int tab[1000001][6]; int main() { scanf ("%d %d", &n, &m); for (int i = 0; i < n; ++i) { tab[i][0] = tab[i][1] = tab[i][2] = tab[i][3] = tab[i][4] = tab[i][5] = 0; } for (int i = 0; i < m; ++i) { int left, right, color; scanf("%d %d %d", &left, &right, &color); --left, --right, --color; ++tab[left][color]; ++tab[right][3 + color]; } int total = 0; int C[3]; C[0] = C[1] = C[2] = 0; for (int i = 0; i < n; ++i) { for (int j = 0; j < 3; ++j) C[j] += tab[i][j]; if (C[0] > 0 && C[1] > 0 && C[2] == 0) ++total; for (int j = 0; j < 3; ++j) C[j] -= tab[i][3 + j]; } printf("%d\n", total); } |
English