Pagini recente » Cod sursa (job #1914756) | Cod sursa (job #658323) | Cod sursa (job #765661) | Borderou de evaluare (job #3150503) | Cod sursa (job #1203737)
#include<fstream>
#include<algorithm>
using namespace std;
int i,n,k,a[16005],rs,st,dr,pivot;
bool valid(int x) {
int gmb=x,fnc=k;
for(i=1;i<=n;++i)
if(gmb<a[i]) gmb=x-a[i],--fnc;
else gmb-=a[i];
if(gmb>0) --fnc;
if(fnc>=0) return 1;
return 0;
}
int main()
{
ifstream cin("transport.in");
ofstream cout("transport.out");
cin>>n>>k;
for(i=1;i<=n;++i) cin>>a[i],dr+=a[i],st=max(st,a[i]);
rs=dr;
while(st<=dr)
{
pivot=(st+dr)/2;
if(valid(pivot)) rs=min(rs,pivot),dr=pivot-1;
else st=pivot+1;
}
cout<<rs<<'\n';
return 0;
}