Pagini recente » Cod sursa (job #2211004) | Cod sursa (job #1502222) | Cod sursa (job #428368) | Cod sursa (job #1850395) | Cod sursa (job #2622795)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int main()
{
int n, k, v[16001], i, l, r, mid, nr_transporturi, vol_transport, rez;
f>>n>>k;
for(i=0;i<n;i++)
f>>v[i];
l = *max_element(v,v+n);
r = accumulate(v,v+n,0);
//cout<<l<<" "<<r;
while(l <= r)
{
mid = l + (r - l)/2;
nr_transporturi = 1;
vol_transport = 0;
for(i=0;i<n;i++)
{
if(vol_transport + v[i] > mid)
{
vol_transport = v[i];
nr_transporturi++;
}
else
vol_transport += v[i];
}
if(nr_transporturi>k)
l = mid + 1;
else
{
r = mid - 1;
rez = mid;
}
}
g<<rez;
f.close();
g.close();
return 0;
}