Pagini recente » Cod sursa (job #1375290) | Cod sursa (job #1109438) | Cod sursa (job #2232540) | Cod sursa (job #569935) | Cod sursa (job #2853405)
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[16000],n,k;
int check(int nr){
int s = 0,cnt = 0;
for(int i = 0;i < n;i++){
if(s + v[i] > nr){
s = v[i];
cnt++;
}else s+=v[i];
}
if(cnt > k)return 0;
return 1;
}
int bs(int l,int r){
if(l == r){
return l;
}
int mij = (l + r)/2;
if(check(mij)){
return bs(l,mij);
}else return bs(mij + 1,r);
}
int main()
{
int maxx = -1e9,i;
fin>>n>>k;
for(i = 0;i < n;i++){
fin>>v[i];
maxx = max(maxx,v[i]);
}
fout<<bs(maxx,256000000);
return 0;
}