Pagini recente » Cod sursa (job #2012751) | Cod sursa (job #1877044) | Cod sursa (job #2689979) | Cod sursa (job #966739) | Cod sursa (job #1644618)
#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 m)
{
int cont = 1, suma = 0;
for(int i = 1; i <= n; i++)
{
suma += a[i];
if(suma > m) cont++, suma = a[i];
}
if(k >= cont) return 1;
else return 0;
}
void bin()
{
int s = 1, d = 16000;
while(s<=d)
{
int mid = (d+s)/2;
if(ok(mid))
{
sol = mid;
d = mid-1;
}
else s = mid+1;
}
}
int main()
{
f>>n>>k;
for(int i = 1; i <= n; i++) f>>a[i];
bin();
g<<sol<<'\n';
return 0;
}