Pagini recente » Cod sursa (job #1575752) | Cod sursa (job #111480) | Profil StoianRares | Cod sursa (job #1713041) | Cod sursa (job #472767)
Cod sursa(job #472767)
#include<iostream>
#include<fstream>
using namespace std;
int a[16010];
int tryvol(int n, int k, int vol){
int i, j, cod = 1, v;
i = 1;
j = 0;
while (i <= n){
v = 0;
if (j < k){
j++;
while ( (i <= n) && (v + a[i] <= vol) ){
v = v + a[i];
i++;
}
}
else {
cod = 0;
break;
}
}
return cod;
}
int main(){
ifstream f("transport.in");
ofstream g("transport.out");
int n, x, k, s = 0, max = 0, m, sol;
f>>n>>k;
int i, j;
for (i = 1; i <= n; i++){
f>>a[i];
s = s + a[i];
if (a[i] > max)
max = a[i];
}
int p = max, u = s;
while (p <= u){
m = (p + u)/2;
x = tryvol(n, k, m);
if (x == 0)
p = m+1;
else {
sol = m;
u = m-1;
}
}
g<<sol<<'\n';
return 0;
}