Pagini recente » Cod sursa (job #2112869) | Cod sursa (job #2138006) | Rating Popa Mihaela (popamihaela) | Cod sursa (job #131006) | Cod sursa (job #2922258)
#include <iostream>
#include <cmath>
#include <fstream>
#define nmax 16005
using namespace std;
int n,k,v[nmax],mn;
int main()
{
ifstream f ("transport.in");
ofstream g ("transport.out");
f>>n>>k;
for (int i=1;i<=n;i++)
{
f>>v[i];
mn=max(mn,v[i]);
}
int st=mn,dr=256000001,mid,sol=0;
while (st<=dr)
{
mid=(st+dr)/2;
int k1=k;
int p=mid,ok=0;
for (int i=1;i<=n;i++)
{
if (p>=v[i])
p-=v[i];
else
{
k1--;
p=mid-v[i];
}
if (k1==0)
{
ok=1;
break;
}
}
if (ok==1)
{
st=mid+1;
}
else
{
dr=mid-1;
sol=mid;
}
}
g<<sol;
}