Pagini recente » Cod sursa (job #1800668) | Cod sursa (job #728505) | Cod sursa (job #2239382) | Cod sursa (job #577330) | Cod sursa (job #1232702)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
const int NMAX = 16005;
int n, k, S[NMAX], Sum, maxx;
int Valid(int x)
{
int laps = 1, load = 0;
for(int i = 1; i <= n; i++)
{
load += S[i];
if(load > x)
{
load = S[i];
laps += 1;
}
}
if(laps <= k)
return 1;
return 0;
}
int BinSearch(int left, int right)
{
int mid, sol;
while(left <= right)
{
mid = (left+right) / 2;
if(Valid(mid))
{
sol = mid;
right = mid - 1;
}
else
left = mid + 1;
}
return sol;
}
void read()
{
fin >> n >> k;
for(int i = 1; i <= n; i++)
{
fin >> S[i];
Sum += S[i];
if(S[i] > maxx)
maxx = S[i];
}
fout << BinSearch(maxx,Sum);
}
int main()
{
read();
return 0;
}