Pagini recente » Cod sursa (job #3324138) | Cod sursa (job #2048462) | Cod sursa (job #3341565) | Cod sursa (job #3342749) | Cod sursa (job #3345067)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
#define cin fin
#define cout fout
const int Nmax=2e4;
int v[Nmax];
int main()
{
int n,k;
cin>>n>>k;
int st=0,dr=0;
for(int i=1;i<=n;i++)
{
cin>>v[i];
dr+=v[i];
st=max(st,v[i]);
}
int ans=0;
while(st<=dr)
{
int m=(st+dr)/2;
int nr=0,cnt=1,idx=0;
for(int i=1;i<=n;i++)
{
if(nr+v[i]<=m)
{
nr+=v[i];
}
else
{
cnt++;
nr=v[i];
}
}
if(cnt>k)
{
st=m+1;
}
else
{
dr=m-1;
ans=m;
}
}
cout<<ans;
return 0;
}