Pagini recente » Cod sursa (job #1772751) | Cod sursa (job #2600677) | Cod sursa (job #2932539) | Cod sursa (job #3243539) | Cod sursa (job #1025761)
//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=1000000000;
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;
}