离散化差分数组,直接计分即可
复杂度为遍历map时带来的$O(NlogN)$
#include <iostream>
#include <cstring>
#include <algorithm>
#include <map>
using namespace std;
int main()
{
int n, x, y, z;
cin >> n >> x >> y >> z;
map<int, int> mp;
for(int i = 0;i < n;i ++){
int a, b;
cin >> a >> b;
mp[0] += x;
mp[a] += y - x;
mp[b + 1] += z - y;
}
int sum = 0, ans = 0;
for(auto [k, v] : mp){
sum += v;
ans = max(ans, sum);
}
cout << ans;
}