Advertisement
kokokozhina

Untitled

Mar 18th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.76 KB | None | 0 0
  1. #include <iostream>//bug225
  2. #include <stdio.h>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <set>
  6.  
  7. using namespace std;
  8.  
  9. int n, k;
  10. int* v;
  11.  
  12. bool can(int x)
  13. {
  14.     int sum = 0;
  15.     for(int i = 0; i < n - 1; i++) sum += v[i] / x;
  16.     return sum >= k;
  17. }
  18.  
  19. void bs()
  20. {
  21.     int l = 1; int r = *max_element(v, v+n); cout << r << endl;
  22.     while(r-l > 1){
  23.         int mid = (l + r) / 2;
  24.         if(can(mid)) l = mid;
  25.         else r = mid;
  26.     }
  27.     int result = -1;
  28.     for(int i = l; i <= r; i++) if(can(i)) result = i;
  29.     cout << result << endl;
  30. }
  31.  
  32. int main()
  33. {
  34. #ifdef _DEBUG
  35.     freopen("input.txt", "r", stdin);
  36.     freopen("output.txt", "w", stdout);
  37. #endif
  38.  
  39.     scanf("%d%d", &n, &k);
  40.     v = new int[n];
  41.     for(int i = 0; i < n; i++) scanf("%d", &v[i]);
  42.     sort(v, v + n);
  43.     bs();
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement