Pagini recente » Cod sursa (job #388873) | Cod sursa (job #1635535) | Borderou de evaluare (job #1567800) | Cod sursa (job #2716488) | Cod sursa (job #1025757)
//Transport
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int main(){
int n,k,s,cnt;
int st=0 , dr=16000;
int i=2;
int m;
int a[16000];
fin >> n >> k;
for (int i = 1; i <= n; ++i)
{
fin >> a[i];
if (a[i] > st) st = a[i];
}
while(st < dr)
{
s = 0, cnt = 1;
m = (dr + st)/2;
for (int i = 1; i <= n; ++i)
if (s + a[i] <= m)
s += a[i];
else
s = a[i], cnt++;
if (cnt > k) st = m+1;
else dr = m;
}
fout << st;
return 0;
}