[BOJ] 11659 구간 합 구하기 4

Min Kyu Jeon·2021년 7월 28일
1

구간 합 구하기 4
https://www.acmicpc.net/problem/11659

1부터의 누적합을 dp로 저장하여 뺄샘연산을 통해서 구간합을 구하였다.

단순한dp문제지만 힙,인덱싱트리 등을 배우고나서 풀라니까 너무 복잡하게 생각했던문제

#include <bits/stdc++.h>
using namespace std;


int N, M;
int arr[100001];
	
int dp[100001];
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	cin >> N >> M;

	
	for (int i = 1; i <= N; i++) {
		cin >> arr[i];
		if (i == 1) dp[1] = arr[1];
		else dp[i] = dp[i - 1] + arr[i];
	}
	


	for (int i = 1; i <= M; i++) {
		int l, r;
		cin >> l >> r;
		cout << dp[r] - dp[l - 1] << "\n";
	}


	return 0;
}

0개의 댓글