Pagini recente » Cod sursa (job #2789429) | Cod sursa (job #493486) | Cod sursa (job #1135059) | Cod sursa (job #610461) | Cod sursa (job #1140594)
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[16001], n, k;
bool f(int capacitate)
{
int i, nr, sum;
nr = 1;
sum = 0;
for(i = 1; i <= n; i++)
{
if(v[i] < capacitate)
return 0;
if(sum + v[i] <= capacitate)
sum += v[i];
else
{
nr++;
sum = v[i];
}
}
return (nr <= k);
}
int main()
{
int i, pas;
in>>n>>k;
for(i = 1; i <= n; i++)
in>>v[i];
i = 0;
pas = 1 << 27;
while(pas)
{
if(!f(i + pas))
i += pas;
pas /= 2;
}
out<<i + 1<<'\n';
return 0;
}