Pagini recente » Cod sursa (job #2013613) | Cod sursa (job #1079899) | Cod sursa (job #1295827) | Cod sursa (job #2785451) | Cod sursa (job #1729124)
#include <fstream>
using namespace std;
ifstream fi("transport.in");
ofstream fo("transport.out");
int n,k,i,st,dr,mij,x,A[16001],sum,maxim;
int trans(int c)
{
int i=1,s,transp=0;
while(i<=n)
{
s=0;
while(s+A[i]<=c && i<=n)
{
s+=A[i];
i++;
}
transp++;
}
return transp;
}
int main()
{
fi>>n>>k;
for(i=1; i<=n; i++)
{
fi>>A[i];
if(A[i]>maxim)
maxim=A[i];
sum+=A[i];
}
st=maxim;
dr=sum;
while(st<dr)
{
mij=(st+dr)/2;
x=trans(mij);
if(x<=k)
{
dr=mij;
}
else
{
st=mij+1;
}
}
fo<<st<<"\n";
fi.close();
fo.close();
return 0;
}