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
#include <iostream>
#include <cstdio>

const int M1 = 1000001;
struct Can {
    bool yellow, blue, red, green;
};

Can arr[M1];

int main() {
    int n, m, l, r, c, out;
    scanf("%d%d", &n, &m);

    for(int i = 0; i < m; i++) {
        scanf("%d%d%d", &l, &r, &c);
        for(int j = l; j <= r; j++) {
            if(c == 1)      arr[j].yellow = true;
            else if(c == 3) arr[j].blue = true;
            else            arr[j].red = true;
        }
    }
    for(int i = 1; i <= n; i++) {
        if(arr[i].yellow == true && arr[i].blue == true && arr[i].red == false)
            out++;
    }
    printf("%d", out);
}