Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define NMAX 100005
  3.  
  4. using namespace std;
  5.  
  6. ifstream f ("grupuri.in");
  7. ofstream g ("grupuri.out");
  8.  
  9. long long n , k;
  10. long long a[NMAX];
  11.  
  12. bool inline ok(long long mij)
  13. {
  14.     long long s = 0 , i;
  15.  
  16.     for(i = n ; i >= 1 ; i--)
  17.     {
  18.         if(a[i] >= mij)
  19.             s += mij;
  20.         else s += a[i];
  21.     }
  22.  
  23.     return s >= mij * k;
  24. }
  25.  
  26. long long cb(long long s)
  27. {
  28.     long long st = 1 , dr = s , mij = 0 , ans = 0;
  29.  
  30.     while(st <= dr)
  31.     {
  32.         mij = (dr - st) / 2 + st;
  33.  
  34.         if(ok(mij) == true)
  35.         {
  36.             ans = mij;
  37.             st = mij + 1;
  38.         }
  39.         else dr = mij - 1;
  40.     }
  41.  
  42.     return ans;
  43. }
  44.  
  45. int main()
  46. {
  47.     long long s = 0 , i;
  48.  
  49.     f >> k >> n;
  50.  
  51.     for(i = 1 ; i <= n ; i++)
  52.         f >> a[i] , s += a[i];
  53.  
  54.     g << cb(s);
  55.  
  56.     return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement