Pagini recente » Cod sursa (job #2736277) | Cod sursa (job #2948787) | Cod sursa (job #962161) | Cod sursa (job #218162) | Cod sursa (job #3135748)
#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++)
if (v[i] > capacity) return NMAX+5;
else if (v[i]+current > capacity) cnt++, current = v[i];
else current += v[i];
return cnt;
}
int main()
{
ios_base :: sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
short k, x;
fin>>n>>k;
for (short i = 1; i <= n; i++) fin>>v[i];
short left = 1, right = NMAX, 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;
}