#include <bits/stdc++.h> int n, m; int a, b, k; int wynik; int tab[1000003][4]; bool zielony(int x) { if(tab[x][1]>0) if(tab[x][2]>0) if(tab[x][3]==0) return true; return false; } int main() { scanf("%d%d", &n, &m); for(int i=1; i<=m; i++) { scanf("%d%d%d", &a, &b, &k); tab[a][k]++; tab[b+1][k]--; } for(int j=1; j<=3; j++) for(int i=1; i<=n; i++) tab[i][j]+=tab[i-1][j]; for(int i=1; i<=n; i++) if(zielony(i)) wynik++; printf("%d\n", wynik); }
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 | #include <bits/stdc++.h> int n, m; int a, b, k; int wynik; int tab[1000003][4]; bool zielony(int x) { if(tab[x][1]>0) if(tab[x][2]>0) if(tab[x][3]==0) return true; return false; } int main() { scanf("%d%d", &n, &m); for(int i=1; i<=m; i++) { scanf("%d%d%d", &a, &b, &k); tab[a][k]++; tab[b+1][k]--; } for(int j=1; j<=3; j++) for(int i=1; i<=n; i++) tab[i][j]+=tab[i-1][j]; for(int i=1; i<=n; i++) if(zielony(i)) wynik++; printf("%d\n", wynik); } |