#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; } |
English