Pagini recente » Cod sursa (job #228382) | Cod sursa (job #722800) | Cod sursa (job #2107217) | Cod sursa (job #2251259) | Cod sursa (job #1146550)
#include <cstdio>
using namespace std;
int a[16001],k,n,i,s;
void search(int st, int sf)
{
if(st==sf){printf("%ld",st);return;}
int sum=(st+sf)/2;
int q=0,kk=k,rez=1;
for(i=1;i<=n;i++){
q+=a[i];
if(q>sum){
q=a[i];
kk--;
if(q>sum){rez=0;i=n;}
}
}
if(q>0){
q-=sum;
kk--;
}
if(q>0){
rez=0;
}
if(kk<0){rez=0;}
if(rez==0){search(sum+1,sf);}
else{search(st,sum);}
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%ld%ld",&n,&k);
for(i=1;i<=n;i++){scanf("%ld",&a[i]);s+=a[i];}
search(1,s);
return 0;
}