我们发现这个是连续的三个区间
每只奶牛在不同的区间会贡献不同的牛奶
我们可以发现有点像我们写过的岛
通过进行每头奶牛在各区间的贡献量,然后进行前缀和即可计算出答案
#include<iostream>
#include<map>
using namespace std;
map<int ,int >mp;
int n,x,y,z;
int main()
{
cin>>n>>x>>y>>z;
for(int i=1;i<=n;i++)
{
int a,b;
cin>>a>>b;
mp[0]+=x;
mp[a]=mp[a]+y-x;
mp[b+1]=mp[b+1]+z-y;//注意这里要加一,因为b+1才会变成z
}
int res=0,ma=0;
for(auto s:mp)
{
res+=s.second;
ma=max(ma,res);
}
cout<<ma;
}