codeforces433B
Kuriyama Mirai's Stones
有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
6
6 4 2 7 2 7
3
2 3 6
1 3 4
1 1 6
24
9
28
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
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的更多相关文章
随机推荐
- 洛谷 P1596 [USACO10OCT]湖计数Lake Counting
题目链接 https://www.luogu.org/problemnew/show/P1596 题目描述 Due to recent rains, water has pooled in vario ...
- centos 7 安装mqtt 修改用户名和密码
我先新买个Centos 的系统 咱登录呢就用这个软件,主要是方便,可以少安装一些东西 根据自己的系统选择,上面的是32位的. 输入 root 回车 输入密码然后回车 输入的时候什么也不显示 输入 c ...
- 深入理解Java虚拟机(类文件结构+类加载机制+字节码执行引擎)
目录 1.类文件结构 1.1 Class类文件结构 1.2 魔数与Class文件的版本 1.3 常量池 1.4 访问标志 1.5 类索引.父索引与接口索引集合 1.6 字段表集合 1.7 方法集合 1 ...
- 腾讯内推一面C++
北邮论坛找个腾讯的内推,没想到那么快就安排面试了.第一次面腾讯,写点东西记录一下吧. 面的是位置服务部门. 去了之后HR先给了两张纸,有三道编程题.第一道是求 二进制中1的个数(考察位运算)(剑指of ...
- Python-sys模块-61
sys 模块:和Python解释器打交道的模块 sys模块是与python解释器交互的一个接口 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退 ...
- Python_程序实现发红包
发红包 200块钱 20个红包 将200块随机分成20份 基础版本: import random ret = random.sample(range(1, 200 * 100), 19) ret = ...
- 学习WebSocket
初识WebSocket: index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...
- API的设计与安全
前后端分离是个浪潮,原来只有APP客户端会考虑这些,现在连Web都要考虑前后端分离 . 这里面不得不谈的就是API的设计和安全性,这些个问题不解决好,将会给服务器安全和性能带来很大威胁 . API的设 ...
- Mysql占用CPU过高如何优化?(转)
原文:http://bbs.landingbj.com/t-0-241441-1.html MySQL处在高负载环境下,磁盘IO读写过多,肯定会占用很多资源,必然CP会U占用过高. 占用CPU过高,可 ...
- C\C++学习笔记 3
C++记录7 函数指针: 函数名为地址, 地址指的是在机器指令存储的地址. double func(int line){ reture line*3.5;} void f(int line, doub ...