Advertisement
SuitNdtie

Crazy admin

Apr 15th, 2019
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.62 KB | None | 0 0
  1. #include<stdio.h>
  2. int n;
  3. int room[110];
  4.  
  5. int calculate(int maxvalue){
  6.     int ans = 1 , sumnow = 0;
  7.     for(int i=0;i<n;i++){
  8.         if(room[i] > maxvalue){
  9.             return 2e9;
  10.         }
  11.         if(sumnow + room[i] > maxvalue){
  12.             ans++;
  13.             sumnow = 0;
  14.         }
  15.         sumnow += room[i];
  16.     }
  17.     return ans;
  18. }
  19.  
  20. int main()
  21. {
  22.     int k;
  23.     scanf("%d %d",&k,&n);
  24.     for(int i=0;i<n;i++){
  25.         scanf("%d",&room[i]);
  26.     }
  27.     int l = 0, r = 150000;
  28.    
  29.     int ans = 2e9;
  30.     while(l <= r ){
  31.         int m = (l+r)/2;
  32.         int cnt = calculate(m);
  33.         if(cnt > k){
  34.             l = m + 1;
  35.         }else if(cnt <= k){
  36.             if(m < ans)ans = m;
  37.             r = m - 1;
  38.         }
  39.     }
  40.     printf("%d",ans);
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement