Pagini recente » Cod sursa (job #3137164) | Cod sursa (job #1856741) | Cod sursa (job #2513312) | Cod sursa (job #2108471) | Cod sursa (job #2626238)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
int N, K, a[16005];
int Div(int x) {
int secv = 0, i, ct = 0;
for (i = 1; i <= N; i++){
if (a[i]>x) return 0;
ct+= a[i];
if (ct > x) {
secv++;
ct = a[i];
}
}
if( secv <= K) return 1;
return 0;
}
int Cautare_binara() {
int st, dr, poz, m;
st=1;
dr=256000000;
poz=0;
while (st<=dr)
{
m=(st+dr)/2;
if (Div(m)==1)
{
poz=m;
dr=m-1;
}
else st=m+1;
}
return poz;
}
int main() {
int x;
ifstream f("transport.in");
ofstream g("transport.out");
f >> N >> K;
for (int i = 1; i <= N; i++) {
f >> a[i];
}
x = Cautare_binara();
g << x;
}