Pagini recente » Cod sursa (job #1508882) | Cod sursa (job #2328182) | Cod sursa (job #953689) | Cod sursa (job #1627590) | Cod sursa (job #2666999)
#include <bits/stdc++.h>
using namespace std;
int n,maxi,mini,st,k,dr,a[16001];
int numar(int x)
{
int i=1,t=0,sum=0;
while(i<=n)
{
sum=0;
while(sum+a[i]<=x&&i<=n)
{
sum+=a[i];
i++;
}
t++;
}
return t;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
scanf("%d",&a[1]);
mini=a[1];
maxi=a[1];
int i;
for(i=2; i<=n; i++)
{
scanf("%d",&a[i]);
maxi=max(maxi,a[i]);
mini+=a[i];
}
st=maxi;
dr=mini;
int rasp,mijloc,x;
rasp= 16000;
while(dr-st>1)
{
mijloc=st+(dr-st)/2;
x=numar(mijloc);
if(x>k) st=mijloc;
else
{
dr=mijloc;
rasp=min(mijloc,rasp);
}
}
printf("%d",rasp);
return 0;
}