Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int n;
- int room[110];
- int calculate(int maxvalue){
- int ans = 1 , sumnow = 0;
- for(int i=0;i<n;i++){
- if(room[i] > maxvalue){
- return 2e9;
- }
- if(sumnow + room[i] > maxvalue){
- ans++;
- sumnow = 0;
- }
- sumnow += room[i];
- }
- return ans;
- }
- int main()
- {
- int k;
- scanf("%d %d",&k,&n);
- for(int i=0;i<n;i++){
- scanf("%d",&room[i]);
- }
- int l = 0, r = 150000;
- int ans = 2e9;
- while(l <= r ){
- int m = (l+r)/2;
- int cnt = calculate(m);
- if(cnt > k){
- l = m + 1;
- }else if(cnt <= k){
- if(m < ans)ans = m;
- r = m - 1;
- }
- }
- printf("%d",ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement