Pagini recente » Cod sursa (job #1797505) | Cod sursa (job #729350) | Cod sursa (job #950165) | Cod sursa (job #825422) | Cod sursa (job #140734)
Cod sursa(job #140734)
#include<cstdio>
FILE *fin=freopen("transport.in","r",stdin),
*fout=freopen("transport.out","w",stdout);
int n,t,a[16000],min,max;
void citire()
{
scanf("%d %d",&n,&t);
for(int i=0;i<n;i++)
{
scanf("%d",a+i);
if(a[i]>min)
min=a[i];
max+=a[i];
}
}
void solve()
{
int m,li=min,lf=max;
while(li<=lf)
{
m=(li+lf)/2;
int k=0;
for(int i=0;i<n;)
{
if(a[i]+a[i+1]<=m && i+1<n)
{
while(a[i]+a[i+1]<=m && i+1<n) i++;
k++;
}
else i++,k++;
}
if(k>t)
li=m;
if(k==t)
{
printf("%d",m);
return;
}
else
lf=m;
}
}
int main()
{
citire();
solve();
return 0;
}