Facebook
From Bistre Agouti, 1 Year ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 99
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. public class Main
  6. {
  7.         public static void main (String[] args) throws java.lang.Exception
  8.         {
  9.                 //your code here
  10.                 Scanner sc=new Scanner(System.in);
  11.                 int n=sc.nextInt();
  12.                 int arr[]=new int[n];
  13.                 for(int i=0;i<n;i++){
  14.                         arr[i]=sc.nextInt();
  15.                 }
  16.                 int b=sc.nextInt();
  17.                 int low=0;
  18.                 int sum=0;
  19.                 for(int i=0;i<n;i++){
  20.                         if(arr[i]>low){
  21.                                 low=arr[i];
  22.                         }
  23.                         sum+=arr[i];
  24.                 }
  25.                 if(b==n){
  26.                         System.out.print(low);
  27.                         return;
  28.                 }
  29.                 int high=sum;
  30.                 int res=0;
  31.                 while(low<=high){
  32.                         int mid=low+(high-low)/2;
  33.                         if(isPossible(arr,n,b,mid)==true){
  34.                                 res=mid;
  35.                                 high=mid-1;
  36.                         }
  37.                         else{
  38.                                 low=mid+1;
  39.                         }
  40.                 }
  41.                 System.out.print(res);
  42.         }
  43.         public static boolean  isPossible(int arr[] , int n, int b, int mid){
  44.                 int day=1;
  45.                 int sum=0;
  46.                 for(int i=0;i<n;i++){
  47.                         sum+=arr[i];
  48.                         if(sum>mid){
  49.                                 day++;
  50.                                 sum=arr[i];
  51.                         }
  52.                 }
  53.                 return day<=b;
  54.         }
  55. }