Pagini recente » Cod sursa (job #292173) | Cod sursa (job #1016886) | Cod sursa (job #2185793) | Cod sursa (job #1415924) | Cod sursa (job #2151476)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n, k, i, v[16005], emax, smax, x;
int este(int z)
{
int s, nr=0, ok;
i=1;
while(i<=n)
{
s=0;
while(s<=z && i<=n)
{
s+=v[i];
++i;
}
if(s>z)
s=s-v[--i];
++nr;
}
if(nr<=k)
ok=0;
else
ok=1;
return ok;
}
int caut_binara(int st, int dr)
{
int mij;
while(st<=dr)
{
mij=(st+dr)/2;
if(este(mij)==0)
dr=mij-1;
else
st=mij+1;
}
return st;
}
int main()
{
in>>n>>k;
for(i=1; i<=n; ++i)
{
in>>v[i];
if(v[i]>emax)
emax=v[i];
smax+=v[i];
}
x=caut_binara(emax, smax);
out<<x;
return 0;
}