Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- import java.lang.*;
- import java.io.*;
- public class Main
- {
- public static void main (String[] args) throws java.lang.Exception
- {
- Scanner gh = new Scanner (System.in);
- int n = gh.nextInt();
- long k = gh.nextLong();
- long[]arr = new long [n];
- for(int i=0;i<n; i++){
- arr[i] = gh.nextLong();
- }
- long ans = -1;
- long start = 0;
- long end = 10000000;
- while(start<=end){
- long products = 0;
- long mid = start+(end-start)/2;
- for(int i =0; i<n; i++){
- if(arr[i]<=mid){
- long tmp = mid/arr[i];
- products+= tmp;
- }
- }
- if(products<k){
- start = mid+1;
- }
- else{
- ans = mid;
- end = mid-1;
- }
- }
- System.out.println(ans);
- }
- }
- // import java.util.*;
- // import java.lang.*;
- // import java.io.*;
- // public class Main
- // {
- // public static void main (String[] args) throws java.lang.Exception
- // {
- // Scanner sc= new Scanner(System.in);
- // int n= sc.nextInt();
- // int k= sc.nextInt();
- // int[] arr= new int[n];
- // int maxTime= 0;
- // for(int i=0; i<n; i++) {
- // arr[i]= sc.nextInt();
- // maxTime= Math.max(maxTime, arr[i]);
- // }
- // long low= 1;
- // long high= k*maxTime;
- // long ans= 0;
- // while(low<=high){
- // long mid= low + (high-low)/2;
- // if(canManufacture(arr, mid, k)){
- // ans= mid;
- // high= mid-1;
- // }
- // else{
- // low= mid+1;
- // }
- // }
- // System.out.println(ans);
- // }
- // public static boolean canManufacture(int[] arr, long mid, int k){
- // int items= 0;
- // for(int i=0; i<arr.length; i++){
- // items += (mid/(long)arr[i]);
- // }
- // if(items>=(long) k) return true;
- // else return false;
- // }
- // }
- // import java.util.*;
- // import java.lang.*;
- // import java.io.*;
- // public class Main
- // {
- // static int isValid(int[] arr , long mid){
- // int n = arr.length;
- // int products = 0;
- // for(int i = 0 ; i< n ; i++){
- // products += mid/arr[i];
- // }
- // return products;
- // }
- // static long binarySearch(int[] arr , long start, long end , int products ){
- // long ans = -1;
- // while(start <= end){
- // long mid = start+(end - start)/2;
- // if(isValid(arr,mid) < products ){
- // start = mid+1;
- // }else{
- // ans = mid;
- // end = mid -1;
- // }
- // }
- // return ans;
- // }
- // public static void main (String[] args) throws java.lang.Exception
- // {
- // //your code here
- // Scanner sc = new Scanner(System.in);
- // int n = sc.nextInt();
- // int k = sc.nextInt();
- // int arr[] = new int[n];
- // long max = 0L;
- // for(int i=0 ; i <n ; i++ ){
- // arr[i] = sc.nextInt();
- // max = Math.max(max,arr[i]);
- // }
- // System.out.println(binarySearch(arr,1,max*k,k));
- // sc.close();
- // }
- // }
- // import java.util.*;
- // import java.lang.*;
- // import java.io.*;
- // public class Main
- // {
- // static int isValid(int[] arr , long mid){
- // int n = arr.length;
- // int products = 0;
- // for(int i = 0 ; i< n ; i++){
- // products += mid/arr[i];
- // }
- // return products;
- // }
- // static long binarySearch(int[] arr , long start, long end , int products ){
- // long ans = -1;
- // while(start <= end){
- // long mid = start+(end - start)/2;
- // if(isValid(arr,mid) < products ){
- // start = mid+1;
- // }else{
- // ans = mid;
- // end = mid -1;
- // }
- // }
- // return ans;
- // }
- // public static void main (String[] args) throws java.lang.Exception
- // {
- // //your code here
- // Scanner sc = new Scanner(System.in);
- // int n = sc.nextInt();
- // int k = sc.nextInt();
- // int arr[] = new int[n];
- // int max = 0;
- // for(int i=0 ; i <n ; i++ ){
- // arr[i] = sc.nextInt();
- // max = Math.max(max,arr[i]);
- // }
- // System.out.println(binarySearch(arr,1,max*k,k));
- // sc.close();
- // }
- // }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement