Pagini recente » Cod sursa (job #2881224) | Cod sursa (job #2624400) | Cod sursa (job #1192409) | Cod sursa (job #2661227) | Cod sursa (job #2644837)
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int v[16005];
int main()
{
int n,k,sum=0,maxx=0,a;
cin>>n>>k;
for(int i=1; i<=n; i++)
{
cin>>a;
if(maxx<a)
maxx=a;
sum+=a;
v[i]=a;
}
int mij,st=maxx,dr=sum,c=0;
while(st<=dr)
{
mij=(st+dr)/2;
int nrd=1,suml=0;
for(int i=1; i<=n; i++)
{
if(suml+v[i]<=mij)
suml+=v[i];
else
{
nrd++;
suml=v[i];
}
}
if(nrd>k)
st=mij+1;
else
{
dr=mij-1;
c=mij;
}
}
cout<<c;
return 0;
}