C1006 - 前缀和

题目描述

求一组整数中连续的一段数据的和

输入格式

第1行输入两个正整数m和n,代表一组数的个数和询问次数

第2行输入m个整数

接下来的n行,代表询问区间[l, r]所有数据的和

输出格式

共n行,每行一个整数,表示一次询问的结果

输入输出样例

输入样例 输出样例
6 4
1 3 2 10 9 4
1 3
2 6
3 5
1 4
6
28
21
16

注意输入的数据量可能会比较大,需要使用到C++加速读写的方式

const char endl = '\n';
ios::sync_with_stdio(false);
cin.tie(0);

样例说明

输入样例说明:

第1行,6 4 代表的一组数共有6个数,询问次数是4

第2行,6个整数,代表这一组数

第3行,询问区间[1, 3],求6个整数中的第1位到第3位的所有数据的和,一组数的区间从1开始计数

第4行,询问区间[2, 6], 求6个整数中的第2位到第6位的所有数据的和,一组数的区间从1开始计数

第5行、第6行依次类推

输出样例说明:

第1行,代表区间[1, 3]所有数据的和

第2行,代表区间[2, 6]所有数据的和

第3行,代表区间[3, 5]所有数据的和

第4行,代表区间[1, 4]所有数据的和

数据范围与提示

100%的数据:$1 \le m, n \le 10^{6}$,一组数中最大的为100,最小的为-100

测试点数目

共10个测试点,每个测试点10分

时间与内存限制

每个测试点时间:1000ms(1.0s),内存:256MiB

输入输出模式

本OJ支持两种输入输出模式

1. 标准输入输出模式:
直接从标准输入和标准输出读写数据,不需要使用freopen进行文件输入输出重定向
2. 文件输入输出模式(国内信奥赛输入输出模式):
从文件中读写数据,需要使用freopen进行输入输出重定向
本题输入文件名为:C1006.in,输出文件名为:C1006.out