Pagini recente » Cod sursa (job #1837763) | Cod sursa (job #256052) | Cod sursa (job #1861218) | Cod sursa (job #2047040) | Cod sursa (job #1435954)
#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-1;
limD=sumMax+1;
while(limD-limS!=1)
{
mij=limS+(limD-limS)/2;
sMom=0;
kMom=1;
for(int i=1;i<=n;i++)
{
sMom+=v[i];
if(sMom>mij)
{
kMom++;
sMom=v[i];
}
}
if(kMom<=ture)limD=mij;
else limS=mij;
}
sMom=0;
kMom=1;
for(int i=1;i<=n;i++)
{
sMom+=v[i];
if(sMom>mij)
{
kMom++;
sMom=v[i];
}
}
if(kMom==ture)g<<mij;
else g<<++mij;
return 0;
}