E - Kuriyama Mirai's Stones

这道题的题意大概是,输入一串数字,没排序之前编号为1,从小到大排完序编号为2.
然后再输入编号,计算从第l个数字到第r个数字相加的和;
因为v1, v2, ..., vn (1 ≤ vi ≤ 10^9);
所以数组用long long声明;
开三个数组,数组a用来记录输入的数字;
数组b是排序前的累加值,数组c是排序后的累加值;
b[r]-b[l-1]即为排序前从第l个数字到第r个数字相加的和;

#include<iostream>
#include<algorithm>
using namespace std;

int main()
{
    long long  a[100010];
    long long  b[100010];//用于记录排序前的累加值的大小b[i]=a[0]+……a[i]
    long long  c[100010];//用于记录排序后的累加值的大小c[i]=a[0]+……a[i]
    int t;
    cin>>t;
    for(int i=0;i<t;i++)
    {
        cin>>a[i];
        b[i+1]=a[i]+b[i];
    }
    sort(a,a+t);
    for(int i=0;i<t;i++)
    {
        c[i+1]=a[i]+c[i];
    }
    int n;
    cin>>n;
    while(n--)
    {
        int e,l,r;
        cin>>e>>l>>r;
        if(e==1)
        {
            cout<<b[r]-b[l-1]<<endl;
        }
        if(e==2)
        {
            cout<<c[r]-c[l-1]<<endl;
        }
    }
} 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,913评论 6 13
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 10,595评论 0 52
  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 9,568评论 2 13
  • 1. 每个人都有不诚实的时候,因为我们心里住着一个人,一个不会对人提起却很想见的人,一个很爱却刻意不靠近的人。 我...
    木兮说阅读 1,733评论 1 2
  • 我的高塘我的塬 有山有水有高塬 走进竹溪里 何须下江南 格桑花开河两岸 小桥流水醉午眠 眼前有青山 老腔声渐远 乱...
    薛氏夜话阅读 2,586评论 0 0

友情链接更多精彩内容