Pagini recente » Cod sursa (job #2277121) | Cod sursa (job #970698) | Cod sursa (job #179444) | Cod sursa (job #1155819) | Cod sursa (job #1945769)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int i, j, n, k, v[16005], maxi, st, dr, s, m, a, b, nr, c;
int main()
{
f>>n>>k;
for(i=1;i<=n;++i)
{
f>>v[i];
maxi=max(maxi, v[i]);
s+=v[i];
}
st=maxi;
dr=s;
while(st<=dr)
{
m=st+(dr-st)/2;
nr=0;
s=0;
for(i=1;i<=n;++i)
{
s+=v[i];
if(s==m) nr++, s=0;
else if(s>m) nr++, s=v[i];
}
if(s) nr++;
if(nr<=k) c=m, dr=m-1;
else st=m+1;
}
g<<c<<"\n";
return 0;
}