Pagini recente » Cod sursa (job #2184302) | Cod sursa (job #576473) | Cod sursa (job #39680) | Cod sursa (job #2816071) | Cod sursa (job #3208384)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16001];
bool verif(long long smax,int k,int n)
{
long long int sum=0;
int t=0;
for(int i=0;i<n;i++)
{
if(sum+v[i]<=smax)
{
sum+=v[i];
}
else
{
t++;
sum=v[i];
}
}
if(t<k) return true;
return false;
}
int main()
{
int n,k;
long long s=0,ans;
fin>>n>>k;
for(int i=0;i<n;i++)
{
fin>>v[i];
s+=v[i];
}
int st=1,dr=s,mid;
while(st<dr)
{
mid=(st+dr)/2;
if(verif(mid,k,n)==true)
{
ans=mid;
dr=mid-1;
}
else
{
st=mid+1;
}
}
fout<<ans;
return 0;
}