Pagini recente » Cod sursa (job #617632) | Cod sursa (job #1417028) | Cod sursa (job #61321) | Cod sursa (job #1660220) | Cod sursa (job #1644607)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
const int Nmax = 16005;
int n, k, sol;
int a[Nmax];
bool ok(int s)
{
int cont = 1, suma = 0;
for(int i = 1; i <= n; i++)
{
suma += a[i];
if(suma > s) cont++, suma = a[i];
}
if(cont <= k) return 1;
return 0;
}
int main()
{
f>>n>>k;
int li = 1, ls = 16000;
for(int i = 1; i <= n; i++) f>>a[i];
while(li<=ls)
{
int mid = (li+ls)/2;
if(ok(mid))
{
sol = mid;
ls = mid-1;
}
else li = mid+1;
}
g<<sol<<'\n';
return 0;
}