fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define ld long double
  4. #define ull unsigned long long
  5. #define pb(x) emplace_back(x)
  6. #define testcase int t ; cin>>t ; while(t--)
  7. #define fx(x) fixed<<setprecision(x)
  8. #define endl "\n"
  9. #define soso ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
  10. #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
  11. #define arrayn int n;cin>>n;int x[n]; for ( int i = 0 ; i < n ; i++){cin>>x[i];}
  12. #define tolower(x) transform(x.begin(), x.end(), x.begin(), ::tolower);
  13. #define toupper(x) transform(x.begin(), x.end(), x.begin(), ::toupper);
  14. using namespace std ;
  15. int main (){
  16. soso;
  17. int n;
  18. cin>>n;
  19. int h ;
  20. cin>>h;
  21. int arr[n];
  22. for(int i=0;i<n;i++)
  23. {
  24. cin>>arr[i];
  25. }
  26.  
  27. ll fir =1;
  28. ll last = 1e18;
  29. while(fir<last)
  30. {
  31. ll mid =(fir+last)/2;
  32.  
  33. ll temp;
  34. ll ans {};
  35.  
  36. for(int i = 0; i<n;i++)
  37. {
  38.  
  39. temp=(arr[i]+mid-1)/mid;
  40.  
  41. ans+=temp;
  42. }
  43.  
  44. if(ans==h)
  45. {
  46. cout<<mid<<endl;
  47. return 0;
  48. }
  49. else if(ans<h)
  50. {
  51. last=mid-1;
  52. }
  53. else
  54. {
  55. fir =mid+1;
  56. }
  57.  
  58. }
  59.  
  60. }
  61.  
  62.  
Success #stdin #stdout 0.01s 5500KB
stdin
4 8
2 7 6 11
stdout
4