Pagini recente » Cod sursa (job #2107745) | Cod sursa (job #1320614) | Cod sursa (job #1764085) | Cod sursa (job #970006) | Cod sursa (job #1799128)
//Transport
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
#define NMAX 16001
long long N, K;
long long v[NMAX];
long long i, nr;
long long cautareBinara(long long left, long long right) {
if(left < right) {
long long middle = (left + right)/2, contor = 1, Sum = 0;
for(i = 1 ; i <= N ; i++) {
if(v[i] > middle) { contor = NMAX; break; }
Sum += v[i];
if(Sum > middle) Sum = v[i], contor++;
}
if(contor > K) return cautareBinara(middle + 1, right);
else return cautareBinara(left, middle);
}
return left;
}
int main()
{
fin>>N>>K;
for(i = 1 ; i <= N ; i++)
fin>>v[i];
nr = cautareBinara(0, NMAX);
fout<<nr;
fin.close();
fout.close();
return 0;
}