Pagini recente » Cod sursa (job #1680875) | Cod sursa (job #953455) | Cod sursa (job #2238400) | Cod sursa (job #1253300) | Cod sursa (job #1777082)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int N, K, v[16010];
inline bool verif(int middle)
{
int sum = 0, nr = 0;
for(int i = 1; i <= N; i ++)
{
if(sum > middle)
{
nr ++;
sum = v[i - 1];
}
sum += v[i];
}
if(sum > middle)
{
nr += 2;
}
else
{
if(sum)
{
nr ++;
}
}
return nr <= K;
}
int main()
{
fin >> N >> K;
int maxV = 0;
for(int i = 1; i <= N; i ++)
{
fin >> v[i];
maxV = max(maxV, v[i]);
}
int left = maxV;
int right = 16001 * 16001;
while(left <= right)
{
int middle = (left + right) >> 1;
if( verif(middle) )
{
right = middle - 1;
}
else
{
left = middle + 1;
}
}
fout << left;
return 0;
}