Cod sursa(job #2858996)

Utilizator mama_mea_e_florareasaDusumea Alexandrai mama_mea_e_florareasa Data 28 februarie 2022 18:33:01
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
const int M=16001;
int v[M];

bool verif(int c,int n,int ture)
{
    int s=0,k=0;
    for(int i=0; i<n; i++)
    {
        s+=v[i];
        if(s>c)
        {
            s=v[i];
            k++;
        }
    }
    k++;
    if(k>ture)
        return false;
    else
        return true;
}
int main()
{
    int n,k,dr=0,st=0;
    cin>>n>>k;
    for(int i=0; i<n; i++)
    {
        cin>>v[i];
        dr+=v[i];
        if(v[i]>st)
            st=v[i];
    }
    int cap_min=dr;
    while(st<=dr)
    {
        int c=(st+dr)/2;
        if(verif(c,n,k))
        {
            cap_min=c;
            dr=c-1;
        }
        else
            st=c+1;
    }
    cout<<cap_min;
    return 0;
}