Mieszanie kolorów

作者: qiqi 分类: 前缀和/差分 发布时间: 2025-10-24 20:28

提交链接

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;
}


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

标签云