Pagini recente » Cod sursa (job #2624186) | Diferente pentru problema/logik intre reviziile 22 si 23 | Diferente pentru problema/psir intre reviziile 12 si 4 | Diferente pentru problema/halftree intre reviziile 24 si 21 | Cod sursa (job #3152666)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16005];
int n,k;
int verif(int c){
int transporturi_curent=k;
int vol=0;
for(int i=1;i<=n;i++){
vol+=v[i];
if(vol>c){
transporturi_curent--;
vol=v[i];
}
}
return transporturi_curent>=1;
}
int cautbin(){
int st=1;
int dr=1600*1600;
int predc;
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;
}