Pagini recente » Cod sursa (job #1247426) | Cod sursa (job #1004299) | Cod sursa (job #794637) | Cod sursa (job #2976948) | Cod sursa (job #3274296)
#include <bits/stdc++.h>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int main() {
int n, k;
f >> n >> k;
int v[n+1];
for( int i = 1; i <= n; ++i )
{
f >> v[i];
}
long long st = 1, dr = 256000001, mij;
while( st < dr )
{
mij = st + (dr-st)/2;
///[st, mij] [mij+1, dr]
int cnt = 0;
long long q = 0;
for( int i = 1; i <= n; ++i )
{
if( q + v[i] >= mij )
++cnt, q = 0;
q += v[i];
}
if( q >= mij )
++cnt;
//cout << mij << " " << cnt << "\n";
if( cnt <= k )
dr = mij;
else
st = mij+1;
}
g << st;
return 0;
}