Pagini recente » Cod sursa (job #1485193) | Cod sursa (job #1616478) | Cod sursa (job #510387) | Cod sursa (job #2900319) | Cod sursa (job #1114187)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
int n,k,s,t,st,dr,mj,tr,sc,i,Max,v[16001],Min;
int main()
{
f>>n>>k;
Max=-1;
for (i=1;i<=n;i++){
f>>v[i];
s+=v[i];}
st=1;
dr=s;
while (st<=dr)
{
mj=st+(dr-st)/2;
tr=0;
sc=0;
for(i=1;i<=n;i++)
{
if(v[i]>mj)
{
tr=k+1;
break;
}
sc+=v[i];
if (sc>mj)
{
tr++;
sc=v[i];
}
}
tr++;
if (tr<=k)
{
Min=mj;
dr=mj-1;
}
else
{
st=mj+1;
}
}
g<<Min;
return 0;
}