Pagini recente » Cod sursa (job #90721) | Cod sursa (job #3295488)
#include <fstream>
using namespace std;
fstream cin("transport.in");
ofstream cout("transport.out");
int main()
{
int s[16001], gasit=0, n, k, i;
cin>>n>>k;
int vmin=-1;
int vmax=0;
for(int i=1; i<=n; i++)
{
cin>>s[i];
if(s[i]>vmin)
vmin=s[i];
vmax=vmax+s[i];
}
int st=vmin, dr=vmax, mij, rasp;
i=vmin;
while(st<=dr)
{
mij=(st+dr)/2;
int c=0;
int d=1;
for(int j=1; j<=n; j++)
{
if(c+s[j]<=mij)
c=c+s[j];
else
{
d++;
c=s[j];
}
}
if(d<=k)
{
dr=mij-1;
rasp=mij;
}
else
{
st=mij+1;
}
}
cout<<rasp;
return 0;
}