Pagini recente » Cod sursa (job #1863293) | Cod sursa (job #2354280) | Cod sursa (job #1933480) | Cod sursa (job #68222) | Cod sursa (job #3259348)
#include <fstream>
using namespace std;
int v[16001];
ifstream cin("transport.in");
ofstream cout("transport.out");
int main()
{
int i, n, k, s=0, maxx=0, aux=0, st, dr, mij, sol, t;
cin>>n>>k;
for(i=1; i<=n; i++)
{
cin>>v[i];
if(maxx<v[i])
{
maxx=v[i];
}
s=s+v[i];
}
st=maxx;
dr=s;
sol=-1;
while(st<=dr)
{
t=0;
mij=(st+dr)/2;
for(i=1; i<=n; i++)
{
if(mij-aux>=v[i])
{
aux=aux+v[i];
}
else
{
t++;
i--;
aux=0;
}
}
if(t>k)
{
st=mij+1;
}
else if(t<k)
{
dr=mij-1;
}
else
{
sol=mij;
dr=mij-1;
}
}
cout<<sol;
}