Pagini recente » Cod sursa (job #388594) | Cod sursa (job #2712176) | Cod sursa (job #993394) | Cod sursa (job #1011473) | Cod sursa (job #1000893)
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[16001],i,n,ss,s,k,ma,nr,st,m,dr;
int main()
{
f>>n>>k;
for (i=1;i<=n;i++)
{
f>>v[i];
s+=v[i];
if (v[i]>ma)
ma=v[i];
}
st=ma;
dr=s;
while (st<dr)
{
m=(st+dr)/2;
ss=0;
for (i=1;i<=n;i++)
if (ss+v[i]<=m)
ss+=v[i];
else
{
nr++;
ss=0;
i--;
}
if (nr<=k)
dr=m-1;
else
st=m+1;
}
if (k*k==n)
g<<dr;
else
g<<st;
f.close();
g.close();
}