#include <stdio.h> #define ZOLTY 1 #define NIEBIESKI 2 #define CZERWONY 3 //#define ZIELONY (NIEBIESKI + ZOLTY) struct zmiana { int add_yellow; int add_blue; int add_red; int dec_yellow; int dec_blue; int dec_red; }; struct zmiana kolor[1000001]; int main() { int i, n, m; scanf("%d %d\n", &n, &m); for(i=1;i<=n;i++) { kolor[i].add_yellow = 0; kolor[i].add_blue = 0; kolor[i].add_red = 0; kolor[i].dec_yellow = 0; kolor[i].dec_blue = 0; kolor[i].dec_red = 0; } for(i=0;i<m;i++) { int l,r,k; scanf("%d %d %d\n", &l, &r, &k); if (k==ZOLTY) { kolor[l].add_yellow++; kolor[r].dec_yellow++; } else if (k==NIEBIESKI) { kolor[l].add_blue++; kolor[r].dec_blue++; } else if (k==CZERWONY) { kolor[l].add_red++; kolor[r].dec_red++; } } int y = 0; int b = 0; int r = 0; int rv = 0; for(i=1;i<=n;i++) { y+=kolor[i].add_yellow; b+=kolor[i].add_blue; r+=kolor[i].add_red; if ((y >0) && (b > 0) && (r == 0)) { rv++; } y-=kolor[i].dec_yellow; b-=kolor[i].dec_blue; r-=kolor[i].dec_red; } printf("%d\n", rv); 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 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include <stdio.h> #define ZOLTY 1 #define NIEBIESKI 2 #define CZERWONY 3 //#define ZIELONY (NIEBIESKI + ZOLTY) struct zmiana { int add_yellow; int add_blue; int add_red; int dec_yellow; int dec_blue; int dec_red; }; struct zmiana kolor[1000001]; int main() { int i, n, m; scanf("%d %d\n", &n, &m); for(i=1;i<=n;i++) { kolor[i].add_yellow = 0; kolor[i].add_blue = 0; kolor[i].add_red = 0; kolor[i].dec_yellow = 0; kolor[i].dec_blue = 0; kolor[i].dec_red = 0; } for(i=0;i<m;i++) { int l,r,k; scanf("%d %d %d\n", &l, &r, &k); if (k==ZOLTY) { kolor[l].add_yellow++; kolor[r].dec_yellow++; } else if (k==NIEBIESKI) { kolor[l].add_blue++; kolor[r].dec_blue++; } else if (k==CZERWONY) { kolor[l].add_red++; kolor[r].dec_red++; } } int y = 0; int b = 0; int r = 0; int rv = 0; for(i=1;i<=n;i++) { y+=kolor[i].add_yellow; b+=kolor[i].add_blue; r+=kolor[i].add_red; if ((y >0) && (b > 0) && (r == 0)) { rv++; } y-=kolor[i].dec_yellow; b-=kolor[i].dec_blue; r-=kolor[i].dec_red; } printf("%d\n", rv); return 0; } |