Cod sursa(job #2634221)

Utilizator MerlinTheWizardMelvin Abibula MerlinTheWizard Data 10 iulie 2020 09:31:32
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int a[16003],k,n;
void Citire()
{
    f>>n>>k;
    for (int i=1; i<=n; i++)

        f>>a[i];
}



int Div(int val)
{
    int sec=0,t=1;
    for (int i=1;i<=n;i++)
    {
        if(a[i]>val)
            return 0;
        sec=a[i]+sec;
        if (sec>val)
        {
            t++;
            sec=a[i];
        }

    }
    if (t<=k)
        return 1;
    return 0;

}



int Cautare_binara()
{
    int st,dr,c,poz;
    st = 1;
    dr = 256000000;
    poz = 0;
    while (st<=dr)
    {
        c=(st+dr)/2;
        if (Div(c)==1)
        {
            poz=c;
            dr=c-1;
        }
        else
            st=c+1;
    }
    return poz;
}



int main()
{
    int x;
    Citire();
    x=Cautare_binara();
    g<<x<<"\n";
    return 0;
}