만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

구간 합 구하기

면접 대비

시간 제한1초메모리 제한256 MB

요약
정적 배열에 누적합을 미리 구한 뒤 구간 끝값에서 시작값 앞을 빼서 각 구간 합을 구합니다.
난이도

쉬움10점 중 3점

유형
누적 합
정답자
아직 제출이 없습니다

문제

NN개의 수 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다. 구간을 나타내는 두 정수 ii와 jj가 MM개 주어질 때, 각 구간마다 ii번째 수부터 jj번째 수까지의 합을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 수의 개수 NN이 주어진다. (1≤N≤100,0001 \le N \le 100{,}000)

둘째 줄에 A1,A2,…,ANA_1, A_2, \dots, A_N이 공백으로 구분되어 주어진다. (−1,000≤Ai≤1,000-1{,}000 \le A_i \le 1{,}000)

셋째 줄에 구간의 개수 MM이 주어진다. (1≤M≤100,0001 \le M \le 100{,}000)

넷째 줄부터 MM개의 줄에 각 구간을 나타내는 ii와 jj가 한 줄에 하나씩 주어진다. (1≤i≤j≤N1 \le i \le j \le N)

출력

MM개의 줄에 걸쳐 각 구간의 합을 입력에 주어진 순서대로 한 줄에 하나씩 출력한다.

예제4

  1. 예제 1

    입력
    5
    10 20 30 40 50
    5
    1 3
    2 4
    3 5
    1 5
    4 4
    
    예상 출력
    60
    90
    120
    150
    40
    
  2. 예제 2

    입력
    3
    1 0 -1
    6
    1 1
    2 2
    3 3
    1 2
    2 3
    1 3
    
    예상 출력
    1
    0
    -1
    1
    -1
    0
    
  3. 예제 3

    입력
    1
    0
    1
    1 1
    
    예상 출력
    0
    
  4. 예제 4

    입력
    6
    -1000 -1000 -1000 -1000 -1000 -1000
    5
    1 6
    1 1
    3 5
    6 6
    2 4
    
    예상 출력
    -6000
    -1000
    -3000
    -1000
    -3000