使用三个前缀和数组统计
#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;
}

京公网安备 11010502036488号