Pagini recente » Cod sursa (job #1770404) | Cod sursa (job #747005) | Cod sursa (job #1092987) | Cod sursa (job #2363057) | Cod sursa (job #1453316)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int Dim = 17000;
int N,K,T[Dim],S;
int Check(int C)
{
int Nr = 0,i = 1;
while (i <= N)
{
if (T[i] > C) return 2*K;
int x = 0;
while (i <= N && x + T[i] <= C)
x += T[i],
i++;
Nr++;
}
return Nr;
}
int main()
{
fin >> N >> K;
for (int i = 1;i <= N;i++)
fin >> T[i],S += T[i];
int L = 1,R = S;
do
{
int Mid = (L + R) / 2;
if (Check(Mid) <= K) R = Mid;
else L = Mid + 1;
}while (R > L);
fout << R;
return 0;
}