Pagini recente » Cod sursa (job #2582043) | Cod sursa (job #1428355) | Cod sursa (job #1823417) | Cod sursa (job #265212) | Cod sursa (job #2986169)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[16001];
int main()
{
int n, k, i, searc, st, dr, cap, mid, nrtrans, alltrans;
in>>n>>k;
for(i=1; i<=n; ++i)
{
in>>v[i];
}
st=1;
dr=16000*16000;
while(st<=dr)
{
mid=(st+dr)/2;
cap=mid;
nrtrans=1;
alltrans=0;
for(i=1; i<=n; i++)
{
if(mid<v[i])
{
st=mid+1;
i=n+1;
alltrans=1;
}
else
{
if(cap-v[i]>=0)
cap-=v[i];
else
{
cap=mid-v[i];
nrtrans++;
}
}
}
if(nrtrans>k||alltrans==1)
{
st=mid+1;
}
else
{
dr=mid-1;
searc=mid;
}
}
out<<searc;
return 0;
}