Cod sursa(job #2842428)

Utilizator Ana100Ana-Maria Tomoiala Ana100 Data 31 ianuarie 2022 19:32:34
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n,k,vol,v[16005],st,dr,sol,NMAX,min1=16005;
int check(int x)
{
    int cnt=0,suma=0;
    for(int i=1;i<=n;i++)
    {
        suma+=v[i];
        if(suma>x)
        {
            suma=v[i];
            cnt++;
        }
    }
    cnt++;
    if(cnt<=k)
        return 1;
    else
        return 0;
}
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
        NMAX+=v[i];
        min1=min(min1,v[i]);
    }
    st=min1;
    dr=NMAX;
    while(st<=dr)
    {
        int mij=(st+dr)>>1;
        if(check(mij)==1)
        {
            sol=mij;
            dr=mij-1;
        }
        else
        {
            st=mij+1;
        }
    }
    cout<<sol;
    return 0;
}