Pagini recente » Cod sursa (job #963427) | Istoria paginii runda/oni_2009_1_10 | Istoria paginii runda/simulare_emag_mediu_2016_runda1/clasament | Cod sursa (job #2394144) | Cod sursa (job #2154592)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("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=s+v[i];
++i;
}
if(s>z)
s=s-v[--i];
++nr;
}
if(nr<=k)
ok=0;
else
ok=1;
return ok;
}
int caut(int st,int dr)
{int m;
while(st<=dr)
{m=(st+dr)/2;
if(este(m)==0)
dr=m-1;
else
st=m+1;}
return st;
}
int main()
{
f>>n>>k;
for(i=1; i<=n; ++i)
{
f>>v[i];
if(v[i]>emax)
emax=v[i];
smax+=v[i];
}
x=caut(emax, smax);
g<<x;
return 0;
}