Pagini recente » Cod sursa (job #1296035) | Cod sursa (job #1861045) | Cod sursa (job #2968021) | Cod sursa (job #1674339) | Cod sursa (job #213024)
Cod sursa(job #213024)
#include <stdio.h>
#define MAXN 16100
int v[MAXN];
int n,k,S=0,pie=0;
void citire()
{
freopen("transport.in","r",stdin);
scanf("%d%d",&n,&k);
for (int i=0; i<n; ++i)
{
scanf("%d",&v[i]);
if (pie<v[i])
pie=v[i];
S+=v[i];
}
}
inline int verif(int x)
{
int a=0,b=1,i;
for (i=0; i<n; ++i)
{
if (a+v[i]<=x)
{
a+=v[i];
}
else
{
a=v[i];
b++;
}
}
return b;
}
void wtfpie ()
{
int s=pie, e=S, m;
while (s<e)
{
m=(s+e)/2;
if (verif(m)<=k)
e=m;
else
s=m+1;
}
freopen("transport.out","w",stdout);
while (verif(e)<=k)
--e;
while (verif(e)>k)
e++;
printf("%d\n",e);
}
int main()
{
citire();
wtfpie(); //OBEY THE PIE!!!
return 0;
}