Pagini recente » Cod sursa (job #3319115) | Cod sursa (job #3324138) | Cod sursa (job #2048462) | Cod sursa (job #3341565) | Cod sursa (job #3342749)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int Variabila=1e9;
int nr[16005];
int k;
int n;
int okish(int c){
int i=1, m=1, suma=0;
while(i<=n){
if(nr[i]>c){
m=Variabila;
return m;
}
if(suma+nr[i]>c){
m++;
suma=nr[i];
}
else
suma+=nr[i];
i++;
}
return m;
}
int binar(int st, int dr){
int med, last=-1, t;
while (st<=dr){
med=(st+dr)/2;
t=okish(med);
if(t<=k){
last=med;
dr=med-1;
}
else
st=med+1;
}
return last;
}
int main(){
int i;
fin>>n>>k;
int sum=0;
for(i=1; i<=n; i++){
fin>>nr[i];
sum+=nr[i];
}
int rez=binar(1, sum);
fout<<rez;
return 0;
}