Pagini recente » Cod sursa (job #1750544) | Cod sursa (job #2002628) | Istoria paginii utilizator/banescueduard123 | Cod sursa (job #3290932) | Cod sursa (job #2002258)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[16001];
int main()
{
int n,k,i;
in>>n>>k;
for(i=0;i<n;i++)
in>>v[i];
bool found = false;
int li = 1,ls = 16000 * k,mid,t,s,lastr = 0,lastmid = 0;
while(!found)
{
mid = (li+ls) / 2;
t=s=0;
for(i=0;i<n;i++)
{
if(v[i] > mid) {t = 16001;break;}
s+=v[i];
if(s > mid)
{
t++; s = 0;
}
}
if(t<=k)
{
ls = mid;
lastr = t;
lastmid = mid;
}
if(t > k)
{
li = mid;
if(lastr > 0)
{
out<<lastmid;
return 0;
}
}
}
return 0;
}