JAVA   63

Untitled

Guest on 23rd August 2022 01:15:46 PM

  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. public class Main
  6. {
  7.     static boolean minPages(int[] arr ,long mid, int bags){
  8.       long totalPages = 0;
  9.       int bag = 1;
  10.       for(int i = 0;i<arr.length;i++){
  11.         totalPages+=arr[i];
  12.         if(totalPages>mid){
  13.           bag++;
  14.           totalPages = arr[i];
  15.         }
  16.         if(bag>bags){
  17.           return false;
  18.         }
  19.       }
  20.       return true;
  21.      
  22.     }
  23.         public static void main (String[] args) throws java.lang.Exception
  24.         {
  25.                 //your code here
  26.       Scanner sc = new Scanner(System.in);
  27.       int n = sc.nextInt();
  28.       int[] arr = new int[n];
  29.       long minRange = Integer.MIN_VALUE;
  30.       long maxRange = 0;
  31.       for(int i = 0;i<n;i++){
  32.         arr[i]=sc.nextInt();
  33.         if(arr[i]>minRange){
  34.           minRange=arr[i];
  35.         }
  36.         maxRange+=arr[i];
  37.       }
  38.       int b = sc.nextInt();
  39.       long noOfPages = 0;
  40.       while(minRange<=maxRange){
  41.         long mid = minRange+(maxRange-minRange)/2;
  42.         if(minPages(arr,mid,b)){
  43.           noOfPages = mid;
  44.           maxRange = mid-1;
  45.         }else{
  46.           minRange = mid+1;
  47.         }
  48.       }
  49.       System.out.println(noOfPages);
  50.         }
  51. }

Raw Paste


Login or Register to edit or fork this paste. It's free.