Pagini recente » Cod sursa (job #3364600) | Cod sursa (job #3364604) | Monitorul de evaluare | Cod sursa (job #3364597) | Cod sursa (job #3364607)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16005];
int n,k;
bool vf(int lim){
int s=0,cnt=1;
for(int i=1;i<=n;i++){
if(v[i]>lim)
return false;
if(s+v[i]>lim){
s=v[i];
cnt++;
}
else
s+=v[i];
}
return cnt<=k;
}
int main(){
int st=1,dr=256000000,rez,mid;
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>v[i];
rez=dr;
while(st<=dr){
mid=(st+dr)/2;
if(vf(mid)){
rez=mid;
dr=mid-1;
}
else
st=mid+1;
}
cout<<rez;
return 0;
}