Cod sursa(job #2167049)

Utilizator lupulescu2001Lupulescu Vlad lupulescu2001 Data 13 martie 2018 20:00:12
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>

using namespace std;

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

int N,K,V[16003];

int Check(int Val)
{
    int Pas=0,Sum=0;
    for(int i=1;i<=N;i++)
    {
        if(V[i]>Val)
        {
            Pas=K+5;
            break;
        }
        if(Sum+V[i]>Val)
        {
            Pas++;
            Sum=0;
        }
        Sum=Sum+V[i];
    }
    Pas++;
    return Pas;

}
int Cautbin()
{
    int Left=1,Right=300000000,Mid,Sol;
    while(Left<=Right)
    {
        Mid=(Left+Right)/2;
        if(Check(Mid)<=K)
            {
                Right=Mid-1;
                Sol=Mid;
            }
        else
            Left=Mid+1;
    }
    return Sol;
}

int main()
{
    fin>>N>>K;
    for(int i=1;i<=N;i++)
        fin>>V[i];
    fout<<Cautbin()<<'\n';
}