Pagini recente » Cod sursa (job #1695909) | Cod sursa (job #1248727) | Cod sursa (job #1722358) | Cod sursa (job #100642) | Cod sursa (job #3317703)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int main()
{
long long n, v[16005], k, sol, st=0, dr=0, t;
fin>>n>>k;
for(int i=1; i<=n; ++i){
fin>>v[i];
if(v[i]>st)
st=v[i];
dr+=v[i];
}
while(st<=dr){
t=(st+dr)/2;
sol=1;
long long crrs=0;
for(int i=1; i<=n; ++i){
if(v[i]>t){
sol=k+1;
break;
}
if(crrs+v[i]<=t)
crrs+=v[i];
else{
++sol;
crrs=v[i];
}
}
if(sol>k)
st=t+1;
else
dr=t-1;
}
fout<<st;
return 0;
}