Pagini recente » Monitorul de evaluare | Cod sursa (job #1184412) | Cod sursa (job #2025410) | Cod sursa (job #627533) | Cod sursa (job #3312317)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16001], n, k;
int transportutza(int a)
{
int sum=0, cnt=1;
for(int i=1; i<=n; i++)
{
if(v[i]>a)
return 0;
sum+=v[i];
if(sum>a)
{
cnt++;
sum=v[i];
}
}
if(cnt<=k)
return 1;
return 0;
}
int cb()
{
int st=1, dr=256e6, mij, rasp;
while(st<=dr)
{
mij=(st+dr)/2;
if(transportutza(mij)==1)
{
rasp=mij;
dr=mij-1;
}
else
st=mij+1;
}
return rasp;
}
int main()
{
fin >> n >> k;
for(int i=1; i<=n; i++)
{
fin >> v[i];
}
fout << cb();
return 0;
}