j33vansh

Question 5 Rocky Bhai Solution

Apr 21st, 2022 (edited)
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.29 KB | None | 0 0
  1. import java.util.*;
  2. public class Rocky {
  3.     public static void main(String[] args) {
  4.         Scanner sc = new Scanner(System.in);
  5.  
  6.         int numTests = sc.nextInt();
  7.         for (int testNumber = 0; testNumber < numTests; testNumber++) {
  8.             int m = sc.nextInt();
  9.             int n = sc.nextInt();
  10.             int k = sc.nextInt();
  11.             int[] t = new int[m];
  12.             int[] p = new int[m];
  13.             for (int i = 0; i < m; i++)
  14.                 t[i] = sc.nextInt();
  15.             for (int i = 0; i < m; i++)
  16.                 p[i] = sc.nextInt();
  17.             int l = 0;
  18.             int r = t[0] + (k - 1) * p[0];
  19.             int[] q = new int[m];
  20.             while (l < r) {
  21.                 int mm = (l + r) / 2;
  22.                 for (int i = 0; i < m; i++) {
  23.                     if (mm < t[i])
  24.                         q[i] = 0;
  25.                     else
  26.                         q[i] = (mm - t[i]) / p[i] + 1;
  27.                 }
  28.                 Arrays.sort(q);
  29.                 long cur = 0;
  30.                 for (int i = m - 1; i >= 0 && i >= m - n; i--)
  31.                     cur += q[i];
  32.                 if (cur >= k)
  33.                     r = mm;
  34.                 else
  35.                     l = mm + 1;
  36.             }
  37.             System.out.println(l);
  38.         }
  39.     }
  40. }
Add Comment
Please, Sign In to add comment