Pagini recente » Cod sursa (job #3149594) | Cod sursa (job #1757401) | Cod sursa (job #865697) | Cod sursa (job #1049161) | Cod sursa (job #2580930)
#include <fstream>
#define Nmax 16010
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,st,dr,v[Nmax],sol;
int valabil(int val)
{
int S=v[1],nr=1;
for (int i=2;i<=n;i++)
{
if (S+v[i]<=val)
S+=v[i];
else
{
nr++;
S=v[i];
}
}
if (nr<=k)
return 1;
return 0;
}
void cautare_binara()
{
while (st<=dr)
{
int mij=(st+dr)/2;
if (valabil(mij)){
sol=mij;
dr=mij-1;
}
else
st=mij+1;
}
fout<<sol;
}
int main()
{
int i;
fin>>n>>k;
for (i=1;i<=n;i++)
{
fin>>v[i];
st=max(st,v[i]);
dr+=v[i];
}
cautare_binara();
return 0;
}