brucehb


私信TA

用户名:brucehb

访问量:2907

签 名:

等  级
排  名 1429
经  验 2778
参赛次数 0
文章发表 27
年  龄 0
在职情况 学生
学  校 北航
专  业

  自我简介:

TA的其他文章

解题思路:

注意事项:

参考代码:

#include<bits/stdc++.h>

using namespace std;


typedef long long ll;

const int N = 1e5 + 5;

int n;

ll a[N];

int num[N] = {0};

ll sum[N] = {0};


int main()

{

    int n;

    cin >> n;

    

    for (int i = 1; i <= n; i++) {

        cin >> a[i];

        sum[i] = sum[i-1] + a[i];

    }

    int m;

    cin >> m;

    ll sum1 = 0;

    int left, right;

    for (int i = 0; i < m; i++) {

        cin >> left >> right;

        sum1 += sum[right] - sum[left-1];

        num[left]++;

        num[right + 1]--;

    }

    for (int i = 1; i <= n; i++) {

        num[i] += num[i-1];

    }

    

    sort(a + 1, a + n + 1);

    sort(num + 1, num + n + 1);

    ll sum2 = 0;

    for (int i = 1; i <= n; i++) {

        sum2 += a[i] * num[i];

    }

    cout << sum2 - sum1 << endl;

    

    return 0;

}


 

0.0分

2 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区