Pagini recente » Cod sursa (job #2423853) | Cod sursa (job #2463353) | Cod sursa (job #1758192) | Cod sursa (job #2990480) | Cod sursa (job #2675944)
#include <iostream>
#include <cstdio>
using namespace std;
int v[16003];
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int n,k,i,sum=0,max1=-1,st,dr,mij,sumax=0,h,rasp=2147483647;
cin>>n>>k;
for(i=1; i<=n; i++)
{
cin>>v[i];
sum=sum+v[i];
max1=max(max1,v[i]);
}
st=max1;
dr=sum;
while(dr>=st)
{
mij=(st+dr)/2;
sumax=0;
h=1;
for(i=1; i<=n; i++)
{
if(sumax+v[i]<=mij)
sumax=sumax+v[i];
else
{
h++;
sumax=v[i];
}
}
if(h<=k)
{
rasp=mij;
dr=mij-1;
}
else
st=mij+1;
}
cout<<rasp;
return 0;
}