File tree Expand file tree Collapse file tree 1 file changed +50
-0
lines changed
Expand file tree Collapse file tree 1 file changed +50
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.BufferedReader ;
3+ import java.io.IOException ;
4+ import java.io.InputStreamReader ;
5+ import java.util.Arrays ;
6+ import java.util.StringTokenizer ;
7+
8+ public class Main {
9+ public static void main (String [] args ) throws IOException {
10+ var br = new BufferedReader (new InputStreamReader (System . in));
11+ StringTokenizer st = new StringTokenizer (br. readLine());
12+ int N = Integer . parseInt(st. nextToken());
13+ int K = Integer . parseInt(st. nextToken());
14+ int [] arr = new int [N ];
15+
16+ st = new StringTokenizer (br. readLine());
17+ for (int i = 0 ; i < N ; i++ ) {
18+ arr[i] = Integer . parseInt(st. nextToken());
19+ }
20+ long left = Arrays . stream(arr). min(). getAsInt();
21+ long right = 0 ;
22+ for (int x : arr)
23+ right += x;
24+
25+ long answer = 0 ;
26+ while (left <= right) {
27+ long mid = (left + right) / 2 ;
28+ int groupCount = 0 ;
29+ long sum = 0 ;
30+
31+ for (int i = 0 ; i < N ; i++ ) {
32+ sum += arr[i];
33+ if (sum >= mid) {
34+ groupCount++ ;
35+ sum = 0 ;
36+ }
37+ }
38+
39+ if (groupCount >= K ) {
40+ answer = mid;
41+ left = mid + 1 ;
42+ } else {
43+ right = mid - 1 ;
44+ }
45+ }
46+ System . out. println(answer);
47+ }
48+ }
49+
50+ ```
You can’t perform that action at this time.
0 commit comments