Naxocist

Labor at the Deck

May 4th, 2022
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. using ll = long long;
  5. using pi = pair<int, int>;
  6. using tiii = tuple<int, int, int>;
  7.  
  8. const int N = 1e6 + 3;
  9. ll ar[N], n, m, l, r;
  10.  
  11. int main() {
  12.     // freopen("input.in", "r", stdin);
  13.     scanf("%lld%lld", &n, &m);
  14.     for(int i=0; i<n; ++i) scanf("%d", &ar[i]), r = max(r, ar[i]);
  15.  
  16.     r *= m;
  17.     ll ans = 1e18;
  18.     while(l <= r){
  19.         ll md = l + (r - l)/2, box = 0;
  20.  
  21.         for(int i=0; i<n; ++i){
  22.             box += md / ar[i];
  23.         }
  24.         if(box >= m){
  25.             ans = min(ans, md);
  26.             r = md - 1;
  27.         }else{
  28.             l = md + 1;
  29.         }
  30.  
  31.     }
  32.  
  33.     printf("%lld", ans);
  34.     return 0;
  35. }
  36.  
Advertisement
Add Comment
Please, Sign In to add comment