Pagini recente » Cod sursa (job #2243521) | Cod sursa (job #64938) | Cod sursa (job #1330115) | Cod sursa (job #115216) | Cod sursa (job #3135918)
#include <iostream>
#include <fstream>
#include <queue>
#define short int
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const short NMAX = 16000;
short v[NMAX+5], n;
short nrtransports(const short &capacity)
{
short current = 0, cnt = 1;
for (short i = 1; i <= n; i++) {
current += v[i];
if (current > capacity) cnt++, current = v[i];
}
return cnt;
}
int main()
{
ios_base :: sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
short k, x, maxnr = 0;
int sum = 0;
fin>>n>>k;
for (short i = 1; i <= n; i++)
fin>>v[i], sum += v[i], maxnr = max(maxnr, v[i]);
short left = maxnr, right = sum, solution;
while (left <= right) {
short middle = (left+right)/2;
if (nrtransports(middle) <= k)
solution = middle, right = middle-1;
else left = middle+1;
}
fout<<solution;
return 0;
}