Pagini recente » Cod sursa (job #1623222) | Cod sursa (job #2786318) | Cod sursa (job #1627432) | Cod sursa (job #2394248) | Cod sursa (job #356791)
Cod sursa(job #356791)
#include<cstdio>
int n,k;
const int N = 1<<14;
int v[1<<15];
bool transport ( int q)
{
int nr=0,x=q;
for (int i=1;i<=n;i++)
{
if ( v[i]> q) return 0;
if ( v[i] >= x)
{
nr++;
x=q-v[i];
}
else x-=v[i];
}
if (nr <= k ) return 1;
return 0;
}
int cautare()
{
int i, pas=N;
for (i=0;pas;pas>>=1)
if (i+pas<N && !transport(i+pas))
i+=pas;
return i+1;
}
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", &v[i]);
int o= cautare();
printf("%d", o);
return 0;
}