[白俊]1659号は区間と4を求めます
問題とI/O
質問へのアクセス
累積配列を用いて解決した.
N個の数を入力すると、前の数を加えて累積配列を求める.
arr[i] = arr[i - 1] + integer;
その後、iからjまでの積算とjからi-1までの積算和を減算するようにiからjまでの和を求める.
arr[j] - arr[i - 1]
インプリメンテーションコード
import java.io.*;
import java.util.*;
public class Main {
public static int[] arr;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
arr = new int[N+1];
st = new StringTokenizer(br.readLine());
for(int i = 1; i <= N; i++) {
arr[i] = arr[i-1] + Integer.parseInt(st.nextToken());
}
for(int k = 0; k < M; k++) {
st = new StringTokenizer(br.readLine());
int i = Integer.parseInt(st.nextToken());
int j = Integer.parseInt(st.nextToken());
System.out.println(arr[j] - arr[i-1]);
}
}
}
Reference
この問題について([白俊]1659号は区間と4を求めます), 我々は、より多くの情報をここで見つけました https://velog.io/@choiish98/백준-11659번-구간-합-구하기-4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol