Pagini recente » Cod sursa (job #1916150) | Cod sursa (job #3270933) | Cod sursa (job #1967841) | Cod sursa (job #1126636) | Cod sursa (job #1346616)
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
ofstream g("transport.out");
int N, K, a[16001], S, maxim, li, ls, m, k, i;
int main()
{
freopen("transport.in", "r", stdin);
scanf("%d %d", &N, &K);
for(i=1; i<=N; i++)
{
scanf("%d", &a[i]);
if(a[i]>maxim) maxim=a[i];
S+=a[i];
}
li=maxim;
ls=S;
while(li<=ls)
{
m=(li+ls)/2;
S=0;
k=0;
for(i=1; i<=N; i++)
{
if(S+a[i]<=m) S+=a[i];
else
{
S=a[i];
k++;
}
}
if(k>=K) li=m+1;
else ls=m-1;
}
g<<m;
return 0;
}