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

using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n,m,i;//n- liczba puszek, m- liczba wykonanych operacji
    cin>>n>>m;
    int *Farby;//czy w danej puszce jest zolta, niebieska i czerwona farba
    Farby=new int[n];
    for(i=0; i<n; i++) Farby[i]=0;
    int l,r,k;//l,r- ograniczenia przedzialu dodania koloru, k- dodany kolor
    while(m--){
        cin>>l>>r>>k;
        if(k==3){
            for(i=l-1; i<r; i++) Farby[i]=-1;
            continue;
        }
        for(i=l-1; i<r; i++){
            if(Farby[i]==-1) continue;
            if(Farby[i]!=k && Farby[i]<3) Farby[i]+=k;
        }
    }
    int s=0;
    for(i=0; i<n; i++){
        if(Farby[i]==3) s++;
    }
    cout<<s<<"\n";
    delete[]Farby;
}