Pagini recente » Cod sursa (job #1915187) | Cod sursa (job #862074) | Cod sursa (job #328374) | Cod sursa (job #2686020) | Cod sursa (job #2676837)
#include <fstream>
using namespace std;
int v[16001];
ifstream cin("transport.in");
ofstream cout("transport.out");
int main()
{
int n,k,max=-1,s=0,i,st,dr,mij,tr,sol;
cin>>n>>k;
for(i=1;i<=n;i++)
{
cin>>v[i];
s=s+v[i];
if(max<v[i])
{
max=v[i];
}
}
st=max;
dr=s;
while(st<=dr)
{
mij=(st+dr)/2;
s=0;
tr=1;
for(i=1;i<=n;i++)
{
if(s+v[i]<=mij)
{
s=s+v[i];
}
else
{
s=v[i];
tr++;
}
}
if(tr>k)
{
st=mij+1;
}
else
{
sol=mij;
dr=mij-1;
}
}
cout<<sol;
return 0;
}