Pagini recente » Cod sursa (job #2743167) | Cod sursa (job #2786255) | Cod sursa (job #552807) | Cod sursa (job #124366) | Cod sursa (job #2361550)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
long long v[160001],n,k,s,m,M,K,i,ok,li,ls,x,r,R,Max;
int main ()
{
fin >> n >> k;
s = Max = 0;
for(i = 1; i <= n; i++)
{
fin >> v[i];
s += v[i];
if(v[i] > Max)
Max = v[i];
}
li = Max;
ls = s;
ok = 0;
while(li <= ls)
{
m = (li+ls)/2;
M = m;
K = 1;
i = 1;
while(i <= n)
{
if(m-v[i] >= 0)
{
m -= v[i];
i++;
}
else
{
K++;
m = M;
}
}
if(K == k)
R = M;
if(K <= k)
ls = M-1;
else
li = M+1;
}
fout << R;
return 0;
}