区間和(白駿11659号)を求めます
link : https://www.acmicpc.net/problem/11659
これは積算問題です.
要素の和に直接近づくには長い時間がかかります.
だから区間の和を求めて、並べます.
区間の値をxとyとし,y区間の和からx−1の和の配列を減算すると,区間の和を求めることができる.
#include <iostream>
using namespace std;
int arr[100001] = { 0, };
int main() {
ios_base::sync_with_stdio(NULL);
cin.tie(NULL);
cout.tie(NULL);
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
int num;
cin >> num;
if (i == 1) {
arr[i] = num;
}
else {
arr[i] = (num + arr[i - 1]);
}
}
while (m--) {
int x, y;
cin >> x >> y;
cout << arr[y] - arr[x - 1] << "\n";
}
}
Reference
この問題について(区間和(白駿11659号)を求めます), 我々は、より多くの情報をここで見つけました https://velog.io/@jiho9702/구간합구하기백준-11659번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol