https://www.acmicpc.net/problem/17390
17390번: 이건 꼭 풀어야 해!
[2, 5, 1, 2, 3]을 비내림차순으로 정렬하면 [1, 2, 2, 3, 5]이다.
www.acmicpc.net
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int Q = Integer.parseInt(st.nextToken());
PriorityQueue<Long> pq = new PriorityQueue<>();
long[] sum = new long[N + 1];
st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < N; i++) {
pq.offer(Long.parseLong(st.nextToken()));
}
for (int i = 1; i <= N; i++) {
sum[i] = sum[i - 1] + pq.poll();
}
for (int i = 0; i < Q; i++) {
st = new StringTokenizer(br.readLine(), " ");
int start = Integer.parseInt(st.nextToken());
int end = Integer.parseInt(st.nextToken());
sb.append(sum[end] - sum[start - 1]).append("\n");
}
System.out.print(sb);
}
}'OJ' 카테고리의 다른 글
| [BOJ] 1654 랜선 자르기 (JAVA) (0) | 2023.06.24 |
|---|---|
| [BOJ] 2805 나무 자르기 (JAVA) (1) | 2023.06.23 |
| [BOJ] 10817 세 수 (JAVA) (0) | 2023.06.21 |
| [BOJ] 10870 피보나치 수 5 (JAVA) (0) | 2023.06.20 |
| [BOJ] 1449 수리공 항승 (JAVA) (0) | 2023.06.19 |