Algorithm/BOJ

구간 합 구하기 4 - 11659

jhg0406 2020. 3. 4. 20:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//11659 - 구간 합 구하기 4
 
#include <iostream>
using namespace std;
 
int N, M;
int arr[100001];
 
void init()
{
    cin >> N >> M;
    cin >> arr[1];
    for(int i = 2; i<=N; ++i)
        cin >> arr[i], arr[i] += arr[i-1];
}
 
int ar(int x)
{
    if(x == 0return 0;
    return arr[x];
}
 
int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0);                                
    init();
    int x, y;
    for(int i = 0; i<M; ++i)
    {
        cin >> x >> y;
        cout << ar(y) - ar(x-1<< "\n";
    }
}
cs

 

 

 

 

 

 

https://www.acmicpc.net/problem/11659

 

11659번: 구간 합 구하기 4

첫째 줄에 수의 개수 N (1 ≤ N ≤ 100,000), 합을 구해야 하는 횟수 M (1 ≤ M ≤ 100,000)이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다.

www.acmicpc.net

 

 

 

 

 

 

구간 합 구하기 4

C(i) : 1~i까지의 합

C(i) = C(i-1) + arr[i]