Pagini recente » Cod sursa (job #2773052) | Cod sursa (job #2749752) | Cod sursa (job #2854959) | Istoria paginii runda/4x4/clasament | Cod sursa (job #2670889)
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[16001],n,k,i,tr,maxi;
long sum,s,mini,r,mid,l;
int main()
{
fin>>n>>k;
for (i=1;i<=n;i++)
{
fin>>v[i];
sum=sum+v[i];
if (v[i]>maxi)
maxi=v[i];
}
l=maxi;
r=sum;
mini=sum;
while (l<r)
{
tr=0;
mid=(l+r)/2;
i=1;
while (i<=n)
{
s=0;
while (s+v[i]<=mid && i<=n)
{
s=s+v[i];
i++;
}
tr++;
}
if (tr<k) r=mid;
else if (tr>k) l=mid+1;
else
{
r=mid;
if (mid<mini)
mini=mid;
}
}
fout<< mini;
return 0;
}