Pagini recente » Cod sursa (job #18074) | Cod sursa (job #44703) | Cod sursa (job #405186) | Cod sursa (job #690587) | Cod sursa (job #1436035)
#include<fstream>
using namespace std;
int n,ture,sMom,kMom,mx,limS,limD,mij,sumMax,v[16005];
int main()
{
ifstream f("transport.in");
ofstream g("transport.out");
f>>n>>ture;
for(int i=1;i<=n;i++)
{
f>>v[i];
if(v[i]>mx)mx=v[i];
sumMax+=v[i];
}
limS=mx;
limD=sumMax;
while(limS<=limD)
{
mij=limS+(limD-limS)/2;
sMom=0;
kMom=1;
for(int i=1;i<=n;i++)
{
if(sMom+v[i]<=mij)sMom+=v[i];
else
{
sMom=v[i];
kMom++;
}
}
if(kMom<=ture)limD=mij-1;
else limS=mij+1;
}
g<<limS;
return 0;
}