Pagini recente » Cod sursa (job #2840953) | Cod sursa (job #1536549) | Cod sursa (job #1997432) | Cod sursa (job #1711939) | Cod sursa (job #494023)
Cod sursa(job #494023)
#include <cstdio>
using namespace std;
int n,k,v[1<<15];
int tr(int x)
{
int cnt=0,sum=0;
for (int i=1;i<=n;++i)
{
if (sum+v[i]>x)
{
++cnt;
sum=v[i];
continue;
}
sum+=v[i];
}
if (sum)
++cnt;
return cnt;
}
int bs()
{
int i,step=1<<30;
for (i=0;step;step>>=1)
if (tr(i+step)>k)
i+=step;
return i+1;
}
void citire()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
for(int i=1;i<=n;scanf("%d",&v[i++]));
}
void afisare()
{
printf("%d",bs());
}
int main()
{
citire ();
afisare ();
return 0;
}