CF276C.Little Girl and Maximum Sum

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

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 nn elements (the elements of the array are indexed starting from 1); also, there are qq queries, each one is defined by a pair of integers lil_i, rir_i (1≤li≤ri≤n)(1 \le l_i \le r_i \le n). You need to find for each query the sum of elements of the array with indexes from lil_i to rir_i, 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.

这位小女孩非常喜爱有关数组查询的问题。

一天,她遇到了一个相当著名的问题:你有一个包含 nn 个元素的数组(数组元素的下标从 1 开始);此外,还有 qq 个查询,每个查询由一对整数 lil_i, rir_i (1≤li≤ri≤n)(1 \le l_i \le r_i \le n) 定义。对于每个查询,你需要计算数组中下标从 lil_i 到 rir_i(含端点)的所有元素之和。

小女孩觉得这个问题相当枯燥。她决定在回答查询之前,对数组元素进行重排,使得所有查询结果之和达到最大可能值。你的任务是求出这个最大和的值。

输入格式

The first line contains two space-separated integers nn (1≤n≤2⋅1051 \le n \le 2\cdot10^5) and qq (1≤q≤2⋅1051 \le q \le 2\cdot10^5) — the number of elements in the array and the number of queries, correspondingly.

The next line contains nn space-separated integers aia_i (1≤ai≤2⋅1051 \le a_i \le 2\cdot10^5) — the array elements.

Each of the following qq lines contains two space-separated integers lil_i and rir_i (1≤li≤ri≤n1 \le l_i \le r_i \le n) — the ii-th query.

第一行包含两个以空格分隔的整数 nn(1≤n≤2⋅1051 \le n \le 2\cdot10^5)和 qq(1≤q≤2⋅1051 \le q \le 2\cdot10^5)——分别表示数组的元素个数和查询次数。

第二行包含 nn 个以空格分隔的整数 aia_i(1≤ai≤2⋅1051 \le a_i \le 2\cdot10^5)——表示数组元素。

接下来的 qq 行,每行包含两个以空格分隔的整数 lil_i 和 rir_i(1≤li≤ri≤n1 \le l_i \le r_i \le n)——表示第 ii 个查询。

输出格式

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 C++. It is preferred to use the cin, cout streams or the %I64d specifier.

在一行中输出一个整数——数组元素重排后所有查询回答的最大总和。

请注意,在 C++ 中读取或写入 64 位整数时,请勿使用 %lld 说明符。推荐使用 cin、cout 流,或 %I64d 说明符。

输入输出样例

  • 输入#1

    3 3
    5 3 2
    1 2
    2 3
    1 3

    输出#1

    25
  • 输入#2

    5 3
    5 2 4 1 3
    1 5
    2 3
    2 3

    输出#2

    33

输入解题思路,AI测评打分。不知道怎么写?

首页