Pagini recente » Cod sursa (job #2242278) | Cod sursa (job #2869981) | Cod sursa (job #1536115) | Cod sursa (job #1548452) | Cod sursa (job #3152673)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16005];
int n,k;
bool verif(int c){
int transporturi_curent=k;
int vol=0;
for(int i=1;i<=n;i++){
if (v[i]>c){
return false;
}
vol+=v[i];
if(vol>c){
transporturi_curent--;
vol=v[i];
}
}
return transporturi_curent>=1;
}
int cautbin(){
int st=1;
int dr=16000*16000;
int predc=-1;
while(st<=dr){
int c=(st+dr)/2;
if(verif(c)){
predc=c;
dr=c-1;
}
else {
st=c+1;
}
}
return predc;
}
int main()
{
fin>>n>>k;
for(int i=1;i<=n;i++){
fin>>v[i];
}
fout<<cautbin();
return 0;
}