Pagini recente » Cod sursa (job #2452933) | Cod sursa (job #801836) | Cod sursa (job #247157) | Cod sursa (job #72358) | Cod sursa (job #2026126)
//#include <iostream>
#include <fstream>
using namespace std;
int v[16005];
int camioane(int cant,int n,int k)
{
int drum=1,sum=0;
for(int i=1;i<=n;i++)
{
sum+=v[i];
if(sum>cant){
sum=v[i];
drum++;
}
}
return drum;
}
int main()
{
ifstream cin("transport.in");
ofstream cout("transport.out");
long long ma=-1,sol=16005,n,k,st,dr,mij;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
cin>>v[i];
ma=max(v[i],ma);
}
st=ma;
dr=256000000;
while(st<=dr){
mij=(st+dr)/2;
int p=camioane(mij,n,k);
if(p<=k){
sol=mij;
dr=(st+dr)/2-1;
}
else
st=(st+dr)/2+1;
}
cout<<sol;
return 0;
}