Pagini recente » Cod sursa (job #2583364) | Cod sursa (job #1955847) | Cod sursa (job #112975) | Cod sursa (job #2490028) | Cod sursa (job #2528968)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,a[16003];
int Test(int C)
{
int i,cnt = 1,s = 0;
for(i = 1;i <= n;++i)
{
if(a[i] > C) return 0;
if(s + a[i] <= C)
s += a[i];
else
{
++cnt;
s = a[i];
}
}
return (cnt <= k);
}
int CB()
{
int st,dr,mij,p;
st = p = 1; dr = 256000000;
while(st <= dr)
{
mij = (st + dr) / 2;
if(Test(mij))
{
p = mij;
dr = mij - 1;
}
else st = mij + 1;
}
return p;
}
int main()
{
int i;
fin >> n >> k;
for(i = 1;i <= n;++i)
fin >> a[i];
fout << CB() << "\n";
fout.close();
return 0;
}