Cod sursa(job #3131542)
| Utilizator | Data | 20 mai 2023 15:03:46 | |
|---|---|---|---|
| Problema | Transport | Scor | 80 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.71 kb |
#include <fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int a[16000];
int main()
{
int N, K, i;
in >> N >> K;
for (i = 0; i < N; ++i)
in >> a[i];
in.close();
long long st = 1, dr = 256000000, mid;
while (st <= dr)
{
mid = st + (dr - st) / 2;
int k = 1, s = 0;
for (i = 0; i < N; ++i)
{
s += a[i];
if (s > mid)
{
k++;
s = a[i];
}
}
if (k <= K)
dr = mid - 1;
else
st = mid + 1;
}
out << st << '\n';
out.close();
return 0;
}
