Pagini recente » Cod sursa (job #440616) | Cod sursa (job #948555)
Cod sursa(job #948555)
#include <fstream>
#include <iostream>
using namespace std;
ifstream fi("transport.in");
ofstream fo("transport.out");
#define NMAX 16001
int n,k,c,i,a[NMAX],aux;
int check(int cap){
int v=0,nr=0;
for (i=1; i<=n; i++){
if (a[i]>cap) return 0;
if (v+a[i]<=cap) v+=a[i]; else nr++,v=a[i];
}
if (nr<k) return 1; else return 0;
}
int main(){
fi >> n >> k;
for (i=1; i<=n; i++) fi >> a[i];
while (!(check(c+1) && !check(c))){
aux=1;
while (!check(c+aux)) aux*=2;
c+=aux/2;
}
fo << (c+1);
return 0;
}