Pagini recente » Cod sursa (job #876933) | Cod sursa (job #2767064) | Cod sursa (job #1996308) | Cod sursa (job #629534) | Cod sursa (job #2791907)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int n,k;
int v[16001];
int howMany(int cap)
{
int nrt=1,s=0;
for (int i=1;i<=n;i++)
{if (s+v[i]<=cap) {s=s+v[i];}
else {nrt++;s=v[i];}}
return nrt;
}
int main()
{
fin >>n>>k;
for (int i=1;i<=n;i++)
{fin >>v[i];}
int left=1,right=256000000,sol;
while (left<=right)
{int mid;
mid=(left+right)/2;
if (howMany(mid)<=k) {sol=mid;
right=mid-1;}
else {left=mid+1;}}
fout <<sol;
return 0;
}