Cod sursa(job #2863477)

Utilizator ioanav09Ioana Vladoiu ioanav09 Data 6 martie 2022 19:32:21
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("transport.in");
ofstream fout("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;
    fin>>n>>k;
    for(int i=0; i<n; i++)
    {
        fin>>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;
        }
    }
    fout<<cap_min;
    return 0;

}