Pagini recente » Cod sursa (job #2825230) | Cod sursa (job #1901341) | Cod sursa (job #2259297) | Cod sursa (job #2915657) | Cod sursa (job #688103)
Cod sursa(job #688103)
#include<fstream>
#define DIM 16001
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int N, K, Val[DIM], maxim, st, mid, Sol;
long long sum, dr;
int main()
{
int i;
in >> N >> K;
for(i = 1; i <= N; i++)
{
in >> Val[i];
sum += Val[i];
if( Val[i] > maxim )
maxim = Val[i];
}
st = maxim, dr = sum;
while( st <= dr )
{
int CurrentK = 1, S = 0;
mid = st + (dr-st)/2;
for(i = 1; i <= N; i++)
if( S + Val[i] <= mid )
S += Val[i];
else
S = Val[i], CurrentK++;
if( CurrentK > K ) //cap prea mica
st = mid + 1;
else
Sol = mid, dr = mid-1;
}
out << Sol;
return 0;
}