Pagini recente » Cod sursa (job #2400364) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #1282003) | Cod sursa (job #2439031)
#include <iostream>
using namespace std;
int n,k,v[16001];
int nrdr(int val)
{
int i,nr=1,s=0;
for(i=1;i<=n;i++)
{
if(s+v[i]<=val)
s=s+v[i];
else
{
nr++;
s=v[i];
}
}
return nr;
}
int cbin(int li,int ls)
{
int m,cate,ul;
while(li<=ls)
{
m=(li+ls)/2;
cate=nrdr(m);
if(cate<=k)
{ls=m-1;
ul=m;
}
else
li=m+1;
}
return ul;
}
int main()
{
int i,smax=0,maxi=0;
cin>>n>>k;
for(i=1; i<=n; i++)
{
cin>>v[i];
smax=smax+v[i];
if(v[i]>maxi)
maxi=v[i];
}
cout<<cbin(maxi,smax);
return 0;
}