MC0351区间询问和

码蹄集OJ-区间询问和

MC0351・区间询问和

难度:黄金 时间限制:1 秒 占用内存:64 M 收藏 报错

有 n 个数字,为 a [1]...a [n]。

再来 q 个询问,每个询问包含两个数字 L,r,表示询问∑i=Lr​{a[i]}

小码哥可以重新排列给出的 a 数组,使这 q 组询问所得结果之和最大,输出这个最大值。

格式

输入格式:第一行输入 n 和 q;

第二行输入 n 个数字,第 i 个数字为ai​;

接下来 q 行,每组询问占一行,包含两个数li​,ri​。

输出格式:一个数,即上述答案。

样例 1

输入:

复制代码
3 3
5 3 2
1 2
2 3
1 3

输出:25

代码:

复制代码
#include<bits/stdc++.h> 
using namespace std;
const int N = 2e5+10;
int a[N],dif[N],ori[N];
long long ans = 0;
bool compare(const int & a,const int &b)
{
    return a > b;
}
int main( )
{
    int n,q;
    cin >> n >> q;
    for(int i = 1 ; i <= n ; i++)
    cin >> a[i];
    while(q--)
    {
        int l,r;
        cin >> l >> r;
        dif[l] += 1;
        if(r + 1 <= n)
        dif[r + 1] -= 1;
    }
    sort(a + 1,a + 1 + n,compare);//原数组降序
    for(int i = 1 ; i <= n ; i++)
    {
    	ori[i] = ori[i-1] + dif[i];
	}
	sort(ori + 1,ori + 1 + n,compare);//查询数组降序
	for(int i = 1 ; i <= n ; i++)
	{
		ans += a[i] * ori[i];
	} 
	cout << ans;
    return 0;
}
相关推荐
啊我不会诶2 小时前
24ICPC成都站补题
数据结构·算法
2401_841495645 小时前
【计算机视觉】基于数学形态学的保留边缘图像去噪
人工智能·python·算法·计算机视觉·图像去噪·数学形态学·边缘保留
十八岁讨厌编程5 小时前
【算法训练营Day30】动态规划part6
算法·动态规划
CoderYanger5 小时前
优选算法-双指针:2.复写零
java·后端·算法·leetcode·职场和发展
charlie1145141916 小时前
理解C++20的革命特性——协程支持2:编写简单的协程调度器
c++·学习·算法·设计模式·c++20·协程·调度器
hadage2336 小时前
--- 常见排序算法汇总 ---
算法·排序算法
Mrs.Gril6 小时前
目标检测:yolov7算法在RK3588上部署
算法·yolo·目标检测
WWZZ20258 小时前
ORB_SLAM2原理及代码解析:单应矩阵H、基础矩阵F求解
线性代数·算法·计算机视觉·机器人·slam·基础矩阵·单应矩阵
2401_841495648 小时前
【计算机视觉】分水岭实现医学诊断
图像处理·人工智能·python·算法·计算机视觉·分水岭算法·医学ct图像分割
liulilittle8 小时前
网络编程基础算法剖析:从字节序转换到CIDR掩码计算
开发语言·网络·c++·算法·通信