https://www.acmicpc.net/problem/11659
배열을 입력받고 누적합을 미리 계산해준 다음 이 계산해준 누적합 배열의 j번째와 i번째의 값을 빼준 값을 출력해주면 된다.
정답코드
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n, m;
cin >> n >> m;
vector<int> v(n+1, 0);
vector<int> sum(n+1, 0);
// 배열 입력 및 누적 합 계산
for (int i = 1; i <= n; i++) {
cin >> v[i];
sum[i] = sum[i - 1] + v[i];
}
for (int q = 0; q < m; q++) {
int i, j;
cin >> i >> j;
cout << sum[j] - sum[i - 1] << "\n";
}
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][C++]16139번. 인간-컴퓨터 상호작용 (0) | 2024.11.19 |
---|---|
[백준][C++]2559번. 수열 (0) | 2024.11.18 |
[백준][C++]11444번. 피보나치 수 6 (0) | 2024.11.16 |
[백준][C++]10830번. 행렬 제곱 (0) | 2024.11.15 |
[백준][C++]1629번. 곱셈 (0) | 2024.11.14 |