Pagini recente » Cod sursa (job #2849909) | Cod sursa (job #2765370) | Cod sursa (job #1726907) | Cod sursa (job #643405) | Cod sursa (job #3281787)
#include<fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,k,v[18000];
bool verif(int c){
int nrt=1,cont=v[1];
for(int i=2;i<=n;i++){
if(cont+v[i]<=c)
cont+=v[i];
else{
nrt++;
cont=v[i];
}
}
if(nrt<=k)
return 1;
else
return 0;
}
int main()
{
cin>>n>>k;
int st=-1000000000,dr=0;
for(int i=1;i<=n;i++){
cin>>v[i];
if(v[i]>dr)
st=v[i];
dr+=v[i];
}
int mid,sol;
while(st<=dr){
mid=(st+dr)/2;
if(verif(mid))
sol=mid,dr=mid-1;
else
st=mid+1;
}
cout<<sol;
return 0;
}