Pagini recente » Cod sursa (job #1796945) | Cod sursa (job #277566) | Cod sursa (job #2012215) | Solutii Autumn Warmup, Runda 3 | Cod sursa (job #1277444)
#include<cstdio>
using namespace std;
int v[16001];
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
int n,k,i,max=0,s=0,sum,l1,l2,m,nrtrans,elem;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++)
{
scanf("%d",&v[i]);
if(max<v[i])
max=v[i];
s=s+v[i];
}
l1=max;
l2=s;
while(l1<=l2)
{
m=(l1+l2)/2;
nrtrans=1;
sum=0;
for(i=1;i<=n;i++)
{
if(sum+v[i]<=m)
sum=sum+v[i];
else
{
nrtrans++;
sum=v[i];
}
}
if(nrtrans>k)
{
l1=m+1;
}
else
{
l2=m-1;
elem=m;
}
}
printf("%d",elem);
return 0;
}