Pagini recente » Cod sursa (job #2609689) | Cod sursa (job #1903372) | Cod sursa (job #1345142) | Cod sursa (job #2539922) | Cod sursa (job #155603)
Cod sursa(job #155603)
# include <stdio.h>
# include <vector>
using namespace std;
# define input "transport.in"
# define output "transport.out"
# define MAX 16005
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;
}