Pagini recente » Cod sursa (job #1409683) | Cod sursa (job #629813) | Cod sursa (job #395277) | Cod sursa (job #1505275) | Cod sursa (job #1660327)
#include<fstream>
using namespace std;
long n,s,mi,ma,t,v[16001],k,x,y;
long verif(long t)
{
long sum=0,nr=1;
for(long i=1;i<=n && nr<=k;i++)
{
sum+=v[i];
if(sum>t)
{
sum=v[i];
nr++;
}
}
return nr;
}
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
long i;
f>>n>>k;
for(i=1;i<=n;i++)
{
f>>v[i];
ma=max(ma,v[i]);
s+=v[i];
}
mi=s;
t=(ma+s)/2;
x=ma; y=s;
if(verif(ma)<=k)
g<<ma;
else{
while(x<=y)
{
if(verif(t)<=k)
{
mi=min(mi,t);
y=(x+y)/2-1;
t=(x+y)/2;
}
else
{
x=(x+y)/2+1;
t=(x+y)/2;
}
}
g<<mi;}
return 0;
}