Pagini recente » Cod sursa (job #1507840) | Cod sursa (job #2217437) | Cod sursa (job #1449844) | Cod sursa (job #2282597) | Cod sursa (job #2267612)
#include <stdio.h>
using namespace std;
int v[16001];
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int n,k,st=0,dr,i,m,sc,ct,poz;
scanf("%d %d",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
if(v[i]>st)
{
st=v[i];
}
v[i]+=v[i-1];
}
dr=v[n];
while(st<=dr)
{
m=(st+dr)/2;
sc=0;
ct=0;
for(i=1;i<=n;i++)
{
for(i=i;v[i]-sc<=m && i<=n;i++){}
ct++;
i--;
sc=v[i];
}
if(ct>k)
{
st=m+1;
}
else
{
dr=m-1;
poz=m;
}
}
printf("%d",poz);
return 0;
}