Pagini recente » Cod sursa (job #664079) | Cod sursa (job #1315869) | Cod sursa (job #1489400) | Cod sursa (job #2300921) | Cod sursa (job #2683056)
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n, k;
long long v[16010], sum;
int verif(long long c)
{
long long transp=1, s_crt=0;
for(int i=1; i<=n; i++)
{
if(s_crt+v[i]<=c) s_crt+=v[i];
else {
s_crt=v[i];
transp++;
}
}
return transp;
}
long long caut_binar ()
{
long long left=1, right=sum, mid;
while(left<=right)
{
mid=left+(right-left)/2;
if(verif(mid)<=k) right=mid-1;
else left=mid+1;
}
return left;
}
int main()
{
fin>>n>>k;
for(int i=1; i<=n; i++){
fin>>v[i];
sum+=v[i];
}
fout<<caut_binar();
return 0;
}