YEZAELP

TOI10: แอดมินเจ้าระเบียบ (Crazy Admin)

Jun 13th, 2020
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n,k;
  4. int ar[101];
  5. int f(int cap){
  6.     int box_now=1,w_now=0;
  7.     for(int i=1;i<=n;i++){
  8.         if(w_now+ar[i]>cap){
  9.            box_now++;
  10.            w_now=0;
  11.         }
  12.         w_now+=ar[i];
  13.     }
  14.     return box_now;
  15. }
  16. int main(){
  17.     int max_w=0,sum=0;
  18.     scanf("%d%d",&k,&n);
  19.     for(int i=1;i<=n;i++) {
  20.         scanf("%d",&ar[i]);
  21.         sum+=ar[i];
  22.         max_w = max(max_w,ar[i]);
  23.     }
  24.     int l=max_w,r=sum,min_box=sum;
  25.     while(l<=r){
  26.         int mid=(l+r)/2;
  27.         if(f(mid)>k){
  28.             l++;
  29.         }
  30.         else {
  31.             min_box=min(min_box,mid);
  32.             r--;
  33.         }
  34.     }
  35.     printf("%d",min_box);
  36.  
  37.     return 0;
  38. }
Add Comment
Please, Sign In to add comment