Pagini recente » Cod sursa (job #2293437) | Cod sursa (job #1354879) | Cod sursa (job #2384124) | Cod sursa (job #76864) | Cod sursa (job #1760392)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
//ifstream fin("in.txt");
//ofstream fout("out.txt");
vector <int> vol;
int Cmin=0, Cmax=0, C;
ifstream fin("transport.in");
ofstream fout("transport.out");
int binsearch(int x)
{
int L = Cmin, R = Cmax;
C = Cmax;
while (L <= R)
{
int cars = 1;
int mid = (L+R)/2;
int s = 0;
for (int i = 0; i < vol.size(); i++)
{
s += vol[i];
if (s > mid) {
s = vol[i];
cars++;
}
}
if (cars > x) L = mid + 1;
else {
R = mid - 1;
C = min(C,mid);
}
}
return C;
}
int main()
{
int n, k;
fin >> n >> k;
int x;
for (int i = 0; i < n; i++)
{
fin >> x;
Cmax += x;
Cmin = max(Cmin,x);
vol.push_back(x);
}
fout << binsearch(k);
return 0;
}