Pagini recente » Cod sursa (job #1512064) | Cod sursa (job #330833) | Cod sursa (job #706574) | Cod sursa (job #1337356) | Cod sursa (job #1315480)
#include<stdio.h>
#include<algorithm>
using namespace std;
#define nmax 16005
int n,k,v[nmax],c,x;
void citire()
{
scanf("%d%d",&n,&k);
for(int i=1;i<=n;++i) scanf("%d",&v[i]);
}
void cb()
{
int pas,poz=0,r,cont,gr;
pas=1<<30;
while(pas)
{
gr=0;
cont=0;
r=poz+pas;
for(int i=1;i<=n;++i)
{
if(v[i]>r) cont=1<<30;
if(v[i]>r) break;
if(gr+v[i]<=r)
gr+=v[i];
else
{
gr=v[i];
cont++;
}
}
pas/=2;
if(cont<=k)
c=r;
else poz+=pas;
}
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
citire();
cb();
printf("%d",c);
}