Cod sursa(job #3206756)

Utilizator rosaaaRosa Elen S. rosaaa Data 23 februarie 2024 22:40:55
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
long long v[16005], n;

int e_bine(int x)
{
    long long cnt= 0, suma= 0;
    for(long long i= 1;i <= n;i++)
    {
        if(suma+ v[i] > x)suma= v[i], cnt++;
        else suma+= v[i];
    }
    if(suma < x)cnt++;
    return cnt;
}

int main()
{
    long long i, k, mij, st, dr, rez= -1, suma= 0, ok;
    cin >> n>> k;
    for(i= 1;i <= n;i++)cin >> v[i], suma+= v[i];

    st= 1; dr= suma;
    while(st <= dr)
    {
        mij= (st+ dr)/ 2;
        ok= e_bine(mij);
        //cout <<"mij= "<<mij<<" si ok= "<<ok<<endl;

        if(ok <= k)rez= mij, dr= mij- 1;
        else st= mij+ 1;
    }
    cout << rez;



    return 0;
}