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