使用三个前缀和数组统计

#include <iostream>
#include<vector>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,m;
    cin>>n>>m;
    vector<vector<int>>diff(4,vector<int>(n+2,0));
    for(int i=0;i<m;i++){
        int l,r,k;
        cin>>l>>r>>k;
        diff[k][l]++;
        diff[k][r+1]--;
    }
    int cnt=0;
    int h1=0,h2=0,h3=0;
    for(int i=1;i<=n;i++){
        h1+=diff[1][i];
        h2+=diff[2][i];
        h3+=diff[3][i];
        if(h1>0&&h2>0&&h3==0)cnt++;
    }
    cout<<cnt<<"\n";
    return 0;
}