Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.*;
- import java.util.*;
- public class Main {
- public static void main(String args[]) {
- try (PrintWriter out = new PrintWriter(System.out)) {
- Scanner in = new Scanner(System.in);
- int n = in.nextInt();
- long k = in.nextLong();
- long max = -1;
- long sum = 0;
- long[] a = new long[n];
- a[0] = in.nextLong();
- for (int i = 1; i < n; i++) {
- a[i] = in.nextLong();
- sum += a[i] - a[i - 1];
- }
- long l = 1;
- long r = sum;
- while (l < r) {
- long m = (l + r) / 2;
- int ind = 1;
- long count = 1;
- boolean curFlag = true;
- while (ind < n && count < k) {
- long curSum = 0;
- while (ind < n && curSum < m) {
- curSum += a[ind] - a[ind - 1];
- ind++;
- }
- if (curSum < m)
- curFlag = false;
- count++;
- }
- if (count == k && curFlag) {
- l = m + 1;
- if (max < m)
- max = m;
- } else r = m;
- }
- out.print(max);
- } catch(Exception e) {
- System.out.println("Exception: " + e);
- }
- }
- }
Add Comment
Please, Sign In to add comment