Pagini recente » Profil GugustiucFan | Cod sursa (job #491355) | Cod sursa (job #1175970) | Cod sursa (job #2314208) | Cod sursa (job #262687)
Cod sursa(job #262687)
//#include<algorithm>
//using namespace std;
#define INF 10000001
#include<stdio.h>
int n,k,a[16001];
void solve(){
int i,s,m,st,dr,min,cont;
scanf("%d%d",&n,&k);
for(i=1; i<=n; ++i)
scanf("%d",&a[i]);
for(st=1,dr=min=INF; st<=dr; ){
m=(st+dr)/2;
for(i=cont=1,s=0; i<=n; ++i)
if(s+a[i]<=m)
s+=a[i];
else{
++cont;
s=a[i];}
if(cont<=k){
min=m;
dr=m-1;}
else
st=m+1;}
do{
--m;
for(i=cont=1,s=0; i<=n; ++i)
if(s+a[i]<=m)
s+=a[i];
else{
++cont;
s=a[i];}
if(cont==k)
min=m;}
while(cont==k);
printf("%d",min);}
int main(){
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
solve();
return 0;}