Pagini recente » Cod sursa (job #2401481) | Cod sursa (job #274782) | Cod sursa (job #2255046) | Cod sursa (job #2456593) | Cod sursa (job #307774)
Cod sursa(job #307774)
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{int kkk,nr=256000003,q,w,n,k,s,v[16008],i,j,mij;
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d %d",&n,&k);v[0]=0;j=0;
for (i=1;i<=n;i++) {scanf("%d",&mij);if (mij>j) j=mij; v[i]=mij+v[i-1];}
for (i=j,j=v[n];i<=j;)
{mij=(i+j)/2;q=1;
for (kkk=1,s=mij;( (q<=n) && (kkk<=k));kkk++)
{int* p = upper_bound(v+1, v+n+1, s);
w=p-v;
if ((w==q) || (v[w-1]-v[q-1]>mij)) {q=1;break;}
s=v[w-1]+mij;
q=w;
}
if (q==n+1) {if (mij<nr) nr=mij; j=mij-1;} else
i=mij+1;
}
printf("%d",nr);
return 0;}