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