fork(1) download
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. #define endl '\n'
  4. #define Deghish ios_base::sync_with_stdio(false);cin.tie(NULL);
  5. using namespace std;
  6. bool isPrime(int n) {
  7. if (n<2) return false;
  8. for (int i = 2; i*i <= n; i++) {
  9. if (n%i == 0) return false;
  10. }
  11. return true;
  12. }
  13. vector<int> prim;
  14. void fill() {
  15. int k = 2;
  16. while (prim.size() <= 10005) {
  17. if (isPrime(k)) prim.push_back(k);
  18. k++;
  19. }
  20. }
  21. int get_sqrt(int n) {
  22. int sqr = sqrtl(n);
  23. while ((sqr + 1) * (sqr + 1) <= n) sqr++;
  24. while (sqr * sqr > n) sqr--;
  25. return sqr;
  26. }
  27.  
  28. vector<int>nextMax(vector<int>a) {
  29. vector<int>res(a.size(),-1);
  30. stack<int>st;
  31. for (int i = 0; i < a.size(); ++i) {
  32. while (!st.empty()&&a[st.top()]<a[i]) {
  33. res[st.top()]=i;
  34. st.pop();
  35. }
  36. st.push(i);
  37. }
  38. return res;
  39. }
  40. void solve() {
  41. int n,t;cin>>n>>t;
  42. vector<int>a(n);
  43. int l=1,h=1e9;
  44. for (auto &i:a)cin>>i;
  45. int ans=0;
  46. while (l<=h) {
  47. int mid=l+(h-l)/2;
  48. int x=0;
  49. for (auto i:a) {
  50. x+=mid/i;
  51. }
  52. if (x>=t) {
  53. ans=mid;
  54. h=mid-1;
  55. }
  56. else l=mid+1;
  57.  
  58. }
  59. cout<<ans;
  60. }
  61. signed main() {
  62. Deghish
  63. int Tc = 1;//cin >> Tc;
  64. while (Tc--) {
  65. solve();
  66. }
  67. return 0;
  68. }
  69.  
  70.  
Success #stdin #stdout 0s 5320KB
stdin
3 7
3 2 5
stdout
8