Pagini recente » Profil ElefantulCici | Cod sursa (job #1831353) | Cod sursa (job #1808979) | Cod sursa (job #1133176) | Cod sursa (job #829620)
Cod sursa(job #829620)
#include<cstdio>
using namespace std;
int k,nr,s,p,u,m,i,n,maxi,a[16009];
int ok(int vol)
{
nr=0;
i=1;
s=0;
while(i<=n)
{
if(a[i]>vol) return 0;
if(s+a[i]>vol)
{
nr++;
s=0;
}
s=s+a[i];
i++;
}
if(s!=0) nr++;
if(nr>k) return 0;
return 1;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d",&n);
scanf("%d",&k);
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(a[i]>maxi) maxi=a[i];
s=s+a[i];
}
p=0;
u=s;
while(p<=u)
{
m=(p+u)>>1;
if(ok(m)==0) p=m+1;
else
{
if(ok(m-1)==0)
{
printf("%d\n",m);
return 0;
}
u=m-1;
}
}
while(1)
return 0;
}