Cod sursa(job #2855521)

Utilizator luca.prunoiuluca prunoiu luca.prunoiu Data 22 februarie 2022 16:01:16
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>

using namespace std;
const int M=16000;
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()
{
    ifstream in("transport.in");
    ofstream out("transport.out");
    int n,k,dr=0,st=16000;
    in>>n>>k;
    for(int i=0;i<n;i++)
    {
        in>>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;
    }
    out<<cap_min;
    return 0;
}