Cod sursa(job #2973252)

Utilizator David2007David Preda David2007 Data 31 ianuarie 2023 16:57:42
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <bits/stdc++.h>

using namespace std;
fstream f("transport.in",ios::in);
fstream g("transport.out",ios::out);
int n,i,x,s,a,nr1,nr;
int v[16006];
int verifica(int x)
{
    int x1,nr;
    nr=1;
    x1=v[1];
    for(i=2; i<=n; i++)
    {
         if(x1+v[i]>x)
        {
            x1=v[i];
                nr++;

        }
        else
        x1+=v[i];
    }



    if(nr<=nr1)
        return true;
    else
        return false;

}
int CautareBinara(int st,int dr)
{
    int mij,ok1,sol;

    while(st<=dr)
    {
        mij=(st+dr)/2;

        ok1=verifica(mij);

        if(ok1==true)
        {
            dr=mij-1;
            sol=mij;
        }
        else
        {
            st=mij+1;
        }
    }
    return sol;
}
int main()
{
    f>>n>>nr1;

    for(i=1; i<=n; i++)
    {
        f>>v[i];
        s=s+v[i];

    }

    g<<CautareBinara(1,s);
    return 0;
}