Pagini recente » Cod sursa (job #573071) | Cod sursa (job #2407579) | Cod sursa (job #1292073) | Cod sursa (job #2017200) | Cod sursa (job #2183553)
#include <cstdio>
#include <vector>
using namespace std;
int k,c,n;
vector<int>v;
inline bool verif(int cap)
{
int cnt = 0;
int s = 0;
for(int i = 0 ; i < v.size() ; i++)
{
if(s + v[i] <= cap)
s += v[i];
else
{
s = v[i];
cnt++;
}
}
cnt++;
if(cnt <= k)
return true;
return false;
}
int main()
{
freopen("transport.in","r",stdin);
freopen("transport.out","w",stdout);
scanf("%d%d",&n,&k);
int x;
for(int i = 1 ; i <= n ; i++)
{
scanf("%d",&x);
v.push_back(x);
}
int st = 1;
int dr = 2000000000;
int med;
int ans = -1;
while(st <= dr)
{
med = (st+dr)/2;
if(verif(med))
{
dr = med-1;
ans = med;
}
else
st = med+1;
}
printf("%d",ans);
return 0;
}