Cod sursa(job #3160830)

Utilizator raduanaRadu Ana raduana Data 25 octombrie 2023 09:13:01
Problema Transport Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>

using namespace std;

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

int v[16001];

int main()
{
    int n,k,nr,maxi=-1,suma=0,dr,st,mijl,gasit,contor=1,s,rez=0;
    fin>>n;
    fin>>k;
    for (int i=1; i<=n; i++)
    {
        fin>>nr;
        v[i]=nr;
        suma=suma+nr;
        if (nr>maxi)
        maxi=nr;
    }
    dr=suma;
    st=maxi;
    while (st<=dr)
    {
        mijl=(st+dr)/2;
        s=0;
        for (int i=1; i<=n; i++)
        {

            if (s+v[i]<=mijl)
                s=s+v[i];
            else
            {
               s=v[i];
               contor++;
            }

            if (contor>k)
            st=mijl+1;
            else
            {
               dr=mijl-1;
               rez=mijl;
            }
        }
    }
    fout<<rez;
    return 0;
}