fork(5) download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. ll clas[10000];
  5. ll ciel(float a)
  6. {
  7. ll t=a;
  8. if(t!=a)
  9. t++;
  10. return t;
  11. }
  12. int main()
  13. {
  14. ios::sync_with_stdio(0);
  15. ll n,b;
  16. cin>>n>>b;
  17. ll l=1,r=0;
  18. for(int i=0;i<n;i++)
  19. {
  20. cin>>clas[i];
  21. r=max(r,clas[i]);
  22. }
  23. if(b<n)//number of cakes is less than number of classes
  24. {
  25. cout<<"-1";
  26. return 0;
  27. }
  28. //binary search on "maximum number of students " who will share a cake
  29. while(l<r)
  30. {
  31. ll mid=(l+r)/2;
  32. ll cakes_req=0;
  33. for(int i=0;i<n;i++)
  34. {
  35. cakes_req+=ciel((clas[i]/(float)mid));
  36.  
  37. }
  38. if(cakes_req<=b)
  39. {
  40. r=mid;
  41. }
  42. else
  43. {
  44. l=mid+1;
  45. }
  46. }
  47. cout<<r;
  48. }
Success #stdin #stdout 0s 4304KB
stdin
8 17
3 5 2 6 5 10 7 4
stdout
3