CodeForces
来源:互联网 发布:php类与对象做出兔子 编辑:程序博客网 时间:2024/06/10 10:30
The little girl loves the problems on array queries very much.
One day she came across a rather well-known problem: you've got an array of n elements (the elements of the array are indexed starting from 1); also, there are q queries, each one is defined by a pair of integers li, ri (1 ≤ li ≤ ri ≤ n). You need to find for each query the sum of elements of the array with indexes from li to ri, inclusive.
The little girl found the problem rather boring. She decided to reorder the array elements before replying to the queries in a way that makes the sum of query replies maximum possible. Your task is to find the value of this maximum sum.
The first line contains two space-separated integers n (1 ≤ n ≤ 2·105) and q (1 ≤ q ≤ 2·105) — the number of elements in the array and the number of queries, correspondingly.
The next line contains n space-separated integers ai (1 ≤ ai ≤ 2·105) — the array elements.
Each of the following q lines contains two space-separated integers li and ri (1 ≤ li ≤ ri ≤ n) — the i-th query.
In a single line print a single integer — the maximum sum of query replies after the array elements are reordered.
Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64dspecifier.
3 35 3 21 22 31 3
25
5 35 2 4 1 31 52 32 3
33
思路:大数尽可能多出现,小数尽可能少出现。计算每个下标出现的次数然后排序即可。
计算下标出现的次数可以用这个方法:
创建数组储存每个下标出现的次数,数组初始化为0,每次输入指令,让左边界+1,右边界的后一位-1,然后对数组求前缀和即可。(这个原理我没想明白)
#include<stdio.h>#include<algorithm>#define maxn 200010using namespace std;long long a[maxn],b[maxn];int main(){ long long n,q,i,l,r,ans; while(scanf("%lld%lld",&n,&q)!=EOF) { for(i=0;i<n;i++) { scanf("%lld",&a[i]); b[i]=0; } sort(a,a+n); while(q--) { scanf("%lld%lld",&l,&r); b[l-1]++;//因为数组从0开始,指令从1开始,所以l-1。 b[r]--; } for(i=1;i<n;i++) { b[i]=b[i-1]+b[i]; } sort(b,b+n); ans=0; for(i=0;i<n;i++) { ans+=a[i]*b[i]; } printf("%lld\n",ans); }}
- codeforces~~~
- Codeforces
- codeforces
- Codeforces
- codeforces
- codeforces
- Codeforces
- Codeforces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- CodeForces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- Codeforces
- sql*plus
- 布局常用标签名
- BLUENESSG 早一日受苦、早一日解决、早一日浴火重生 Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
- N皇后
- git本地项目的步骤
- CodeForces
- 正则表达式30分钟入门教程
- iOS开发没有开发者账号照样可以进行真机测试
- java阶乘算法
- 【玖哥乱弹】Android程序员的AI转型之路
- html5预览并上传图片的功能
- 字典树
- html:自定义列表(dl>dt+dd)的使用
- 斯卡布罗集市口琴bd谱