Pagini recente » Cod sursa (job #2156258) | Cod sursa (job #2338123) | Cod sursa (job #2336203) | Cod sursa (job #4572) | Cod sursa (job #1453303)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
long int N,t[16005],s,K,m,l,r;
bool check(int v) {
int k1=0, s=0;
for (int i=0; i<N; ++i)
if (s+t[i]<=v) s+=t[i];
else {
++k1;
s=t[i];
}
++k1;
return k1<=K;
}
int main()
{
f>>N>>K;
for(int i=0;i<N;i++) {
f>>t[i];
m=max(m,t[i]);
}
l=m; r=1000000000;
while (l<=r) {
int mid=(l+r)/2;
if (check(mid)) r=mid-1;
else l=mid+1;
}
g<<l;
return 0;
}