Pagini recente » Cod sursa (job #2698334) | Cod sursa (job #2659074) | Cod sursa (job #414700) | Cod sursa (job #1210269) | Cod sursa (job #2205222)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
short int v[16001];
int main()
{
long long n,k,i,st=0,dr=0,mij=0,pp=1,jhg,s,t,ghj=256000001;
cin>>n>>k;
for(i=1;i<=n;i++)
{
cin>>v[i];
if(v[i]>st)
st=v[i];
dr+=v[i];
}
jhg=dr;
while(pp)
{
s=0;
t=1;
mij=(st+dr)/2;
if(jhg>mij*k)
pp=0;
for(i=1;i<=n;i++)
{
s+=v[i];
if(s>mij)
{
t++;
s=v[i];
}
if(t>k){
pp=0;
i=n;
}
}
if(pp==1)
{
dr=mij-1;
if(mij<ghj)
ghj=mij;
else
pp=0;
}
else
{
pp=1;
st=mij+1;
}
if(st>dr)
pp=0;
}
cout<<ghj;
return 0;
}