Pagini recente » Cod sursa (job #3216021) | Cod sursa (job #352278) | Cod sursa (job #3198470) | Cod sursa (job #1547365) | Cod sursa (job #1644611)
#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;
else return 0;
}
void bin()
{
int li = 1, ls = 16000;
while(li<=ls)
{
int mid = (li+ls)/2;
if(ok(mid))
{
sol = mid;
ls = mid-1;
}
else li = mid+1;
}
}
int main()
{
f>>n>>k;
for(int i = 1; i <= n; i++) f>>a[i];
bin();
g<<sol<<'\n';
return 0;
}