주현이 엄마는 '기억력 테스트 6'이 너무 가혹해서인지 이번에는 좀 쉬운 테스트를 하기로 했다.
이번에도 n개의 숫자를 불러 주고, m개의 질문을 한다.
질문은 두 수 a, b를 이야기 하는데, a번째와 b번째 사이에 불렀던 수들의 합을 묻는다.
예를 들어, 3 5 2 1 4 3 의 숫자를 불러주고, 2, 4라고 질문하면 2번째에서 4번째 불렀던 숫자들의 합인 8을 대답해야한다.
이번 테스트를 무사히 통과하면 '닌자 고'의 4종 캐릭터 장난감을 받을 수 있다.
입력
첫째 줄에 n과 m이 입력된다. ( 1 <= n <= 1,000,000 ) , ( 1 <= m <= 100,000 )
둘째 줄에 n개의 정수가 공백으로 분리되어 입력된다. (입력수의 범위 : -1,000 ~ 1,000)
셋째 줄부터 m개의 질문이 입력되는데, 시작수 a와 마지막 수 b가 입력된다. ( 1 <= a <= b <= n )
출력
질문의 순서대로 각 줄에 a번째와 b번째 사이에 불렀던 수들의 합을 출력한다.
더보기
입력 예시
6
3 3 5 2 1 4 3
2 4
1 1
1 3
출력 예시
8
3
10
#include <iostream>
#include <vector>
using namespace std;
int n, m;
vector<int> querySum;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> n >> m;
querySum.resize(n + 1);
for(int i = 1; i <= n; i++){
cin >> querySum[i];
querySum[i] += querySum[i-1];
}
int a, b;
while(m--){
cin >> a >> b;
cout << querySum[b] - querySum[a - 1] << '\n';
}
return 0;
}
'알고리즘' 카테고리의 다른 글
[코드업] 3020 - 기억력 테스트 4 (0) | 2020.03.28 |
---|---|
[코드업] 3733 - 우박수 길이 (3n+1) (large) (1) | 2020.03.28 |
[코드업] 2033 - 사다리 게임 (0) | 2020.03.28 |
[백준] 11403 - 경로 찾기 (0) | 2020.03.24 |
[백준] 2167 - 2차원 배열의 합 (0) | 2020.03.23 |