Pagini recente » Rating Dragici Ancuta (ioanaanca) | Cod sursa (job #96413) | Cod sursa (job #824149) | Cod sursa (job #1137417) | Cod sursa (job #2353417)
#include <bits/stdc++.h>
#define NMAX 16001
using namespace std;
ifstream f ("transport.in");
ofstream g ("transport.out");
int n , k , i , mini = NMAX;
int a[NMAX];
bool ok(int c){
int ko = k , cc = c;
for(i=1;i<=n;i++)
if(a[i] <= cc)
cc -= a[i];
else{
ko--;
if(ko <= 0)return false;
cc = c - a[i];
}
return true;
}
int cautare_bin()
{
int mij = 0, st = 1 , dr = NMAX * NMAX;
while(st <= dr)
{
mij = (dr - st)/ 2 + st;
if(ok(mij))mini = mij , dr = mij - 1;
else st = mij + 1;
}
return mini;
}
int main()
{
f>>n>>k;
for(i=1;i<=n;i++)f>>a[i];
g<<cautare_bin();
return 0;
}