Pagini recente » Cod sursa (job #1566100) | Cod sursa (job #1887931) | Cod sursa (job #2357940) | Cod sursa (job #1732779) | Cod sursa (job #2261946)
#include <fstream>
#define ci 300000000
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n, k, a[16009];
long long c;
bool valid(long long j){
int w = 1;
long long loc = j;
bool mte = false;
for(int i = 1; i<=n; ++i){
if(a[i] <=loc){
loc-=a[i];
}
else{
++w;
if(w>k){
mte = true;
break;
}
loc = j;
--i;
}
}
if(mte == true) return false;
return true;
}
long long capacitate(long long l, long long r){
if(l >=r-7){
for(long long i = l; i<=r; ++i){
if(valid(i)) return i;
}
}
else{
long long mid = (l+r)/2;
if(valid(mid)) return capacitate(l, mid);
else return capacitate(mid+1, r);
}
}
int main()
{
fin>>n>>k;
for(int i = 1; i<=n; ++i) fin>>a[i];
fout<<capacitate(0,ci);
// for(int i = 1; i<=20; ++i){
// fout<<valid(i)<<'\n';
// }/
return 0;
}