문제
N개의 수 A1, A2, ..., AN이 입력으로 주어진다. 총 M개의 구간 i, j가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는 각 구간을 나타내는 i와 j가 주어진다. (1 ≤ i ≤ j ≤ N)
출력
총 M개의 줄에 걸쳐 입력으로 주어진 구간의 합을 출력한다.
예제 입력 1 복사
5
10 20 30 40 50
5
1 3
2 4
3 5
1 5
4 4
예제 출력 1 복사
60
90
120
150
40
예제 입력 2 복사
3
1 0 -1
6
1 1
2 2
3 3
1 2
2 3
1 3
예제 출력 2 복사
1
0
-1
1
-1
0
간단한 누적합으로 구할 수 있었다.
- c++ 풀이
#include <bits/stdc++.h>
using namespace std;
int n;
int m;
int arr[100001];
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> arr[i];
}
for (int i = 2; i <= n; i++) {
arr[i] += arr[i - 1];
}
cin >> m;
for (int i = 0; i < m; i++) {
int from, to;
cin >> from >> to;
cout << arr[to] - arr[from - 1] << "\n";
}
}
'Algorythms' 카테고리의 다른 글
프로그래머스 Level3 최고의 집합 c++ 풀이 (0) | 2024.02.05 |
---|---|
프로그래머스 Level3 야근 지수 c++ 풀이 (1) | 2024.02.05 |
백준 11502번 세 개의 소수 문제 c++ 풀이 (0) | 2024.02.04 |
백준 2635번 수 이어가기 c++ 풀이 (0) | 2024.02.03 |
백준 15624번 피보나치 수 7 c++ 풀이 (0) | 2024.02.02 |