Pagini recente » Cod sursa (job #426703) | Cod sursa (job #2480038) | Cod sursa (job #1351551) | Cod sursa (job #2106555) | Cod sursa (job #155599)
Cod sursa(job #155599)
# include <stdio.h>
# include <vector>
using namespace std;
# define input "transport.in"
# define output "transport.out"
# define MAX 1605
int i,j,n,k,st,dr,mij;
int a[MAX];
int nr,s;
int main()
{
freopen(input, "r", stdin);
freopen(output, "w", stdout);
scanf("%d%d",&n,&k);
dr = 0;
st = 0;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
dr+=a[i];
if(a[i] > st)
st = a[i];
}
while(st <= dr)
{
mij=(st+dr)/2;
s=0;
nr=0;
for(i=1;i<=n;i++){
s+=a[i];
if(s>mij){
s=0;
nr++;
i--;
}
}
if(s!=0){
nr++;
s=0;
}
/*
mij = (st + dr) >> 1;
nr = 0;
for(i=1;i<=n;)
{
s = a[i];
for(i++;i<=n && s+a[i] <= mij;i++)
s+=a[i];
nr ++;
}*/
if(nr <= k)
dr = mij-1;
else
st = mij+1;
}
printf("%d",st);
return 0;
}