Mieszanie kolorów
Byteasar 正准备给栅栏涂漆。他已经准备了 n 罐白色油漆,他把这些油漆排列成一排,从 1 到 n 编号。他想用这些油漆,但他不想把栅栏涂成白色。他委托了调色专家,调色专家有三种颜料:黄色、蓝色和红色。专家进行了 m 次操作,其中第 i 次操作是向编号在 li 到 ri 之间(包括两端)的所有罐子中加入某种颜料。
#include<bits/stdc++.h>
using namespace std;
#define N 1000010
int yellow[N],blue[N],red[N];
int ans = 0;
int main()
{
int n,m;
int l,r,k;
long long sumy=0,sumb=0,sumr=0;
scanf("%d%d",&n,&m);
while(m--)
{
scanf("%d%d%d",&l,&r,&k);
if(k==1)
yellow[l]++,yellow[r+1]--;
else if(k==2)
blue[l]++,blue[r+1]--;
else
red[l]++,red[r+1]--;
}
for(int i=1;i<=n;i++)
{
sumy += yellow[i];
sumb += blue[i];
sumr += red[i];
if(!sumr && sumy&& sumb)ans++;
}
printf("%d\n",ans);
return 0;
}
