Pagini recente » Cod sursa (job #7973) | Cod sursa (job #3282329) | Cod sursa (job #529448) | Cod sursa (job #1969769) | Cod sursa (job #1958649)
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
freopen ("transport.in","r",stdin);
freopen ("transport.out","w",stdout);
int n,k,m,cm,l1,l2,s=0,max=-1,v[16001],ct=0,aux;
cin>>n>>k;
for (int i=1 ; i<=n ; i++)
{
cin>>v[i];
if (max<v[i])
max=v[i];
s=s+v[i];
}
l1=max;l2=s;
while (l1<=l2)
{
m=(l1+l2)/2;
cm=m;ct=1;
for (int z=1 ; z<=n ; z++)
{
if (m-v[z]>=0)
m=m-v[z];
else
{
ct++;
m=cm;
m=m-v[z];
}
}
if (ct>k)
l1=cm+1;
else
{
aux=cm;
l2=cm-1;
}
}
cout<<aux;
return 0;
}