Pagini recente » Cod sursa (job #358115) | Cod sursa (job #53348) | Cod sursa (job #394720) | Cod sursa (job #1838122) | Cod sursa (job #857035)
Cod sursa(job #857035)
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,st,dr,m,i,max1,nr,s,x,a[16001];
int main ()
{
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>a[i];
if(a[i]>max1)
max1=a[i];
dr=dr+a[i];
}
st=max1-1;
dr++;
while(st<=dr)
{
m=(st+dr)/2;
s=0;
x=1;
for(i=1;i<=n;i++)
{
if(s+a[i]<=m)
s=s+a[i];
else
{
x++;
s=a[i];
}
}
if(x<=k)
dr=m-1;
else
st=m+1;
if(x==k)
nr=m;
}
if(x!=k)
m=nr;
if(m<max1)
m=max1;
g<<m;
return 0;
}