Pagini recente » Cod sursa (job #93884) | Cod sursa (job #2938673) | Cod sursa (job #1645555) | Cod sursa (job #2536224) | Cod sursa (job #681497)
Cod sursa(job #681497)
#include<cstdio>
using namespace std;
long long int n,k,v[16000],d=2*10^9,dmax,dmin,x,verif,j;
bool verifk (int a)
{ int ans = 1;
int i , s = 0;
for (i=1;i<=n;i++){
if (s + v[i] > a){
s=v[i];
ans++;
if (ans>k) return false;
}
else s+=v[i];
}
return (ans <= k);
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%lld %lld",&n,&k);
for (j=1;j<=n;j++)
scanf("%lld",&v[j]);
while (x!=0){
d/=2;
verif=verifk(d);
if (verif==0){
dmin=d;
d=d+d/2;
}
else{
d=d/2;
if (d==dmin){
x=0;
dmax=d*2;
}
}
}
verif=verifk(dmin);
while (verif==0){
dmin++;
verif=verifk(dmin);
}
printf("%lld",dmin);
return 0;
}