Pagini recente » Monitorul de evaluare | sim_ix_9_12_20 | Cod sursa (job #223691) | Cod sursa (job #314943) | Cod sursa (job #1146543)
#include <cstdio>
using namespace std;
int a[16001],k,n,i,s;
void search(int st, int sf)
{
if(st==sf){printf("%ld",st+1);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-=sum;
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;
}