Cod sursa(job #2472727)

Utilizator emanuel27iIonescu Emanuel emanuel27i Data 12 octombrie 2019 19:05:13
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;

ifstream cin("transport.in");
ofstream cout("transport.out");

int v[100000],n,y;

bool solve(int x)
{
    int k=1,s=0;
    for(int i=0;i<n;i++)
    {
        s+=v[i];
        if(s>x)
        {
            k++;
            s=v[i];
        }
    }
    return k<=y;
}

int bin(int st,int dr)
{
    int mij,last=dr;
    bool a;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        a=solve(mij);
        if(a==0)
            st=mij+1;
        else
            last=mij,dr=mij-1;
    }
    return last;
}

int main()
{
    int minm=16001;
    cin>>n>>y;
    for(int i=0;i<n;i++)
    {
        cin>>v[i];
        if(minm>v[i])
            minm=v[i];
    }

    cout<<bin(minm, 1000000000);
    return 0;

}