Pagini recente » Cod sursa (job #1966811) | Cod sursa (job #2376536) | Cod sursa (job #2938655) | Cod sursa (job #327627) | Cod sursa (job #1402735)
# include <fstream>
using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[16005];
int n, k;
bool possible (int c)
{
int currentk=0, currentv=0, i;
for (i=0; i<n; i++)
{
if (currentv+v[i]<=c) currentv+=v[i];
else
{
currentk++;
currentv=v[i];
}
}
currentk++;
if (currentk<=k) return true;
return false;
}
int main()
{
int M=0, left, right, mid, i, sol=-1;
fin>>n>>k;
for (i=0; i<n; i++)
{
fin>>v[i];
M=max(M, v[i]);
}
left=M;
right=256000005;
while (left<=right)
{
mid=(left+right)/2;
if (possible(mid))
{
sol=mid;
right=mid-1;
}
else left=mid+1;
}
fout<<sol;
return 0;
}