Pagini recente » Cod sursa (job #471776) | Cod sursa (job #706545) | Cod sursa (job #2421129) | Cod sursa (job #2178900) | Cod sursa (job #2296044)
#include<cstdio>
using namespace std;
long long saltele[16005];
int n, k;
int nrcam(long long summax)
{
int i, nr = 1;
long long s = 0;
for(i = 1; i <= n; ++ i)
{
s += saltele[i];
if(s > summax)
{
++ nr;
s = saltele[i];
}
}
return nr;
}
long long cautbin()
{
long long st, dr, med, last;
st = 1;
dr = (long long) n * 16000;
while(st <= dr)
{
med = ((long long) st + dr) >> 1;
if(nrcam(med) <= k)
{
last = med;
dr = med - 1;
}
else
st = med + 1;
}
return last;
}
int main()
{
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
int i;
scanf("%d%d", &n, &k);
for(i = 1; i <= n; ++ i)
scanf("%d", &saltele[i]);
printf("%d", cautbin());
return 0;
}