본문 바로가기

백준/투포인터

구간 합 구하기4

728x90

www.acmicpc.net/problem/11659

 

11659번: 구간 합 구하기 4

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

www.acmicpc.net

#include<iostream>
#include<vector>

using namespace std;

int n, m;
int arr[100010];
vector<pair<int, int>>v;

int main() {
	
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> n >> m;


	arr[0] = 0;
	for (int i = 1; i <=n; i++) {
		
		int num;
		cin >> num;
		arr[i] = arr[i - 1] + num;
		
	}


	for (int i = 0; i < m; i++) {
		
		int a, b;
		cin >> a;
		cin >> b;
		v.push_back(make_pair(a, b));
	
	}


	for (int j = 0; j < m; j++) {

		int s = v[j].first;
		int e = v[j].second;

		cout << (arr[e] - arr[s - 1]) << "\n"; // 이거 때매 시간초과남.
	
	}

	return 0;



}

-  누적합으로 구하는 것 같은데 왜 이게 투포인터인지 잘 모르겠다. 

'백준 > 투포인터' 카테고리의 다른 글

부분합 - 1806번  (0) 2021.09.01
두수의 합 - 3273번(Java)  (0) 2021.09.01
겹치는건 싫어  (0) 2021.04.12
두 용액  (0) 2021.04.11
배열합치기  (0) 2021.04.08