Kuriyama Mirai's Stones

CodeForces - 433B

有n颗宝石,每个宝石都有自己的价值。

然后m次询问。问区间[i,j]的宝石的总值,或者问排序后的区间[i,j]的总值。

Input第一行输入一个n(1 <= n <=10^5),表示n个宝石

第二行n个数,v1, v2, ..., vn (1 ≤ vi ≤ 10^9) ,表示每个宝石的价值

第三行输入询问次数m(1≤m≤10^5)。

然后m行,每行包含三个整数类型,type、l和r( 1 ≤ l ≤ r ≤n;1 ≤ type≤ 2)

描述一个问题。如果类型等于1,则应输出原序列的答案,

否则应输出排序后的答案。

Output打印M行。每行必须包含一个整数-对Kuriyama Mirai问题的答案。按输入顺序打印问题的答案。

Examples

Input
6
6 4 2 7 2 7
3
2 3 6
1 3 4
1 1 6
Output
24
9
28
Input
4
5 5 2 3
10
1 2 4
2 1 4
1 1 1
2 1 4
2 1 2
1 1 1
1 3 3
1 1 3
1 4 4
1 2 2
Output
10
15
5
15
5
5
2
12
3
5 sol:大水题,维护两串前缀和即可
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const int N=;
int n,Q;
ll a[N],b[N];
ll Qzha[N],Qzhb[N];
int main()
{
int i;
R(n);
for(i=;i<=n;i++) a[i]=b[i]=read();
for(i=;i<=n;i++) Qzha[i]=Qzha[i-]+a[i];
sort(b+,b+n+);
for(i=;i<=n;i++) Qzhb[i]=Qzhb[i-]+b[i];
R(Q);
while(Q--)
{
int opt=read(),l=read(),r=read();
switch (opt)
{
case :
Wl(Qzha[r]-Qzha[l-]);
break;
case :
Wl(Qzhb[r]-Qzhb[l-]);
break;
}
}
return ;
}
/*
input
4
5 5 2 3
10
1 2 4
2 1 4
1 1 1
2 1 4
2 1 2
1 1 1
1 3 3
1 1 3
1 4 4
1 2 2
output
10
15
5
15
5
5
2
12
3
5
*/
 

codeforces433B的更多相关文章

随机推荐

  1. [BZOJ 3709] Bohater

    Description 在一款电脑游戏中,你需要打败n只怪物(从1到n编号).为了打败第i只怪物,你需要消耗d[i]点生命值,但怪物死后会掉落血药,使你恢复a[i]点生命值.任何时候你的生命值都不能降 ...

  2. [转]关于oracle sql语句查询时表名和字段名要加双引号的问题

    oracle初学者一般会遇到这个问题.   用navicat可视化创建了表,可是就是不能查到!   后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引 ...

  3. UVA10256 The Great Divide

    怎么又没人写题解,那我来贡献一发好了. 题目意思很简单,平面上有两种颜色的点,问你能否求出一条直线使两种颜色的点完全分开. 首先我们考虑两个点集相离的充要条件,这两个点集的凸包必须相离.(很好证明或者 ...

  4. ML.NET 示例:回归之销售预测

    写在前面 准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正. 如果有朋友对此感兴趣,可以加入我:https://github.com/fei ...

  5. Sequelize 连接微软云数据库 SQL Azure

    function getConnection(){ var sequelize=new Sequelize("DBName","sa","000000 ...

  6. 原生JS实现三级联动

    代码实现 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF- ...

  7. 第十二次oo作业

    作业十二 规格化设计简介 规格化设计的发展历史 1950年代,第一次分离,主程序与子程序的分离结构是树状模型,子程序可先于主程序编写.通过使用库函数来简化编程,实现最初的代码重用.产生基本的软件开发过 ...

  8. 小P的金字塔

    题目描述 小P感到自己前几天太作了,于是非常有远见的决定为自己建立一座金字塔. 现在他有n种标准长方体的石头,每种石头只有两个,第i种石头是长宽高分别为Xi,Yi,Zi的长方体.由于整个工程只有小P一 ...

  9. Average Sleep Time CodeForces - 808B (前缀和)

    It's been almost a week since Polycarp couldn't get rid of insomnia. And as you may already know, on ...

  10. p68理想的性质

    1.如何由2.2.4推出后面的结论? 2.为什么A可以等于R? 3.如何证明3? π:R->R/M套用定理2.2.4(2)和(1) R2是R/M,I是R/M的理想也就是R2的理想,所以f^(-1 ...