Pagini recente » Cod sursa (job #2831847) | Cod sursa (job #49704) | Cod sursa (job #383030) | Cod sursa (job #870205) | Cod sursa (job #2091115)
#include <cstdio>
using namespace std;
int a[16005];
int n,k;
int simulare(long long x)
{
long long aux=x;
int ok=1;
for(int i=1;i<=n;i++)
{
if(a[i]>x)
return 1;
if(a[i]>aux)
{
ok++;
aux=x;
}
aux-=a[i];
}
if(ok<=k)
return 0;
return 1;
}
long long cautbin()
{
long long st=0, dr=1LL<<62, mij, pic;
while(st<=dr)
{
mij=(st+dr)/2;
if(simulare(mij)==0)
{
pic=mij;
dr=mij-1;
}
else st=mij+1;
}
return pic;
}
int main()
{
freopen("transport.in", "r", stdin);
freopen("transport.out", "w", stdout);
scanf("%d %d", &n, &k);
for(int i=1;i<=n;i++)
scanf("%d\n", &a[i]);
printf("%lld", cautbin());
return 0;
}