# 題目
AP325 Q-4-10. 恢復能量的白雲熊膽丸
# 解題思路
目前沒東西...
# 程式碼
#include <bits/stdc++.h> | |
using namespace std; | |
#define N 100005 | |
int n,m,p[N],mx=0; | |
bool enough(int e){ | |
if(e<mx) return false; | |
int bm=m,be=e; | |
for(int i=0;i<n;i++){ | |
if(be-p[i]<0){ | |
if(--bm<0) return false; | |
be=e; | |
} | |
be-=p[i]; | |
} | |
return true; | |
} | |
int main(){ | |
int all=0; | |
cin>>n>>m; | |
for(int i=0;i<n;i++){ | |
cin>>p[i]; | |
mx=max(mx,p[i]); | |
all+=p[i]; | |
} | |
int t=0; | |
if(m==0) cout<<all; | |
else | |
for(int jump=all/2;jump>0;jump>>=1){ | |
while(t+jump<all && !enough(t+jump)) | |
t+=jump; | |
} | |
cout<<++t; | |
return 0; | |
} |