Pagini recente » Cod sursa (job #885649) | Cod sursa (job #1757848) | Cod sursa (job #2279364) | Cod sursa (job #653528) | Cod sursa (job #1453429)
#include <iostream>
using namespace std;
int a[16002];
int n, k, s, mn, m, h;
bool pr(int l)
{
int h=0, j=0;
for (int i=0; i<n; i++)
{
h+=a[i];
if (h>=l) h=a[i], j++;
}
return(j>=k);
}
int main ()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
cin >> n >> k;
for (int i=0; i<n; i++)
{
cin >> a[i];
s+=a[i];
if (a[i]>mn) mn=a[i];
}
bool u;
while(mn!=s)
{
u=false;
m=(mn+s)/2;
if(pr(m)) mn=m+1, u=true;
else s=m;
}
if (u) cout << mn-1;
else cout << mn;
return 0;
}