Pagini recente » Cod sursa (job #2487728) | Cod sursa (job #2376795) | Cod sursa (job #24495) | Cod sursa (job #620624) | Cod sursa (job #2626092)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int N, K, a[16005];
bool Valid(int x) {
int ct = 1, i, s = 0;
for (i = 1; i <= N; i++) {
s += a[i];
if (s > x) {
ct++;
s = a[i];
}
}
return ct <= K;
}
int CautBin(int st, int dr) {
int mid = (st + dr) / 2;
if (st == dr)return mid;
if (Valid(mid) == 0)return CautBin(mid+1, dr);
else return CautBin(st, mid);
}
int main() {
int i,mx=0;
ifstream fin("transport.in");
ofstream fout("transport.out");
fin >> N >> K;
for (i = 1; i <= N; i++) {
fin >> a[i];
mx=max(mx,a[i]);
}
fout << CautBin(mx, 16000 * 16000);
}