Cod sursa(job #2866961)

Utilizator LucaMuresanMuresan Luca Valentin LucaMuresan Data 10 martie 2022 09:14:08
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in ("transport.in");
ofstream out ("transport.out");

int a[16001];

int main()
{
    int n, k;
    in >> n >> k;
    for (int i=1; i<=n; i++)
        in >> a[i];

    int l=1, r=10e8;
    int mid;

    while (l<r)
    {
        int cnt = 0;

        mid = (l+r)/2;
        for (int i=1; i<=n && cnt <= k;)
        {
            long long sum = 0;
            int j=i;
            while (sum + a[j] <= mid)
            {
                sum += a[j];
                j++;
            }
            i=j;
            cnt ++;
        }

        if (cnt <= k)
            r = mid;
        else
            l = mid+1;
    }

    out << r;

    return 0;
}