문제 링크
문제
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개의 줄에 걸쳐 입력으로 주어진 구간의 합을 출력한다.
#include <stdio.h>
int main()
{
int n, m, a[100001], s[100001] = { 0 };
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
s[i] = s[i - 1] + a[i];
}
scanf("%d", &m);
while (m--)
{
int x, y;
scanf("%d %d", &x, &y);
printf("%d\n", s[y] - s[x - 1]);
}
}
'백준(BOJ)' 카테고리의 다른 글
백준 11659(구간 합 구하기 4) (0) | 2023.01.22 |
---|---|
백준 26168(배열 전체 탐색하기) (0) | 2023.01.22 |
백준 4673(셀프 넘버) (2) | 2022.05.18 |
백준 15596(정수 N개의 합) (0) | 2022.05.18 |
백준 15552(빠른 A+B) (0) | 2022.05.18 |
백준 3009(네 번째 점) (0) | 2022.01.25 |