Pagini recente » Cod sursa (job #2169335) | Cod sursa (job #888331) | Cod sursa (job #3150662) | Cod sursa (job #1271008) | Cod sursa (job #356790)
Cod sursa(job #356790)
#include<cstdio>
int n,k;
const int N = 1<<14;
int v[1<<15];
bool transport ( int q)
{
int nr=1,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;
}