Pagini recente » Cod sursa (job #1842368) | Cod sursa (job #2420003) | Cod sursa (job #2022428) | Cod sursa (job #2697364) | Cod sursa (job #1973845)
#include <fstream>
#define DM 100005
using namespace std;
ifstream fi("transport.in");
ofstream fo("transport.out");
int n, k, v[DM], i, st = 0, dr, mid, fin;
bool functie(int mid)
{
int aux=0, c=1;
for(int i = 1; i <= n; ++i)
{
aux+=v[i];
if(aux > mid)
aux = v[i], c++;
}
if(c>k)
return 0;
return 1;
}
int main()
{
fi >> n >> k;
for (i = 1; i <= n; ++i)
{
fi >> v[i];
st = max(st,v[i]);
}
dr = 16000*16000;
while (st <= dr)
{
mid = (st + dr)/2;
if (functie(mid))
{
dr = mid - 1;
fin = mid;
}
else
st = mid + 1;
}
fo << fin;
return 0;
}