Pagini recente » Cod sursa (job #1322287) | Cod sursa (job #2433400) | Cod sursa (job #868773) | Cod sursa (job #994162) | Cod sursa (job #1596644)
#include <fstream>
using namespace std;
ifstream cin ("transport.in");
ofstream cout ("transport.out");
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 ()
{
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;
}