Pagini recente » Cod sursa (job #1477341) | Cod sursa (job #262436) | Cod sursa (job #2245832) | Cod sursa (job #1864642) | Cod sursa (job #2853421)
#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 = 0;
cnt++;
}
s+=v[i];
}
cnt++;
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;
}