Pagini recente » Cod sursa (job #3180280) | Cod sursa (job #1784545) | Cod sursa (job #1343047) | Cod sursa (job #1336888) | Cod sursa (job #155571)
Cod sursa(job #155571)
# include <stdio.h>
# include <vector>
using namespace std;
# define input "transport.in"
# define output "transport.out"
# define MAX 1605
long i,j,n,k,st,dr,mij;
long a[MAX];
bool posibil(int cap)
{
int nr = 0;
for(i=1;i<=n;)
{
int s = a[i];
for(i++;i<=n && s+a[i] <= cap;i++)
s+=a[i];
nr ++;
}
if(nr <= k)
return true;
return false;
}
int main()
{
freopen(input, "r", stdin);
freopen(output, "w", stdout);
scanf("%ld%ld",&n,&k);
dr = 0;
st = 0;
for(i=1;i<=n;i++)
{
scanf("%ld",&a[i]);
dr+=a[i];
if(a[i] > st)
st = a[i];
}
dr/=k;
dr*=2;
while(st < dr)
{
int mij = (st + dr) >> 1;
if(posibil(mij))
dr = mij;
else
st = mij+1;
}
printf("%ld",st);
return 0;
}