Cod sursa(job #2858994)

Utilizator Radu_Tanasebitlevel Radu_Tanase Data 28 februarie 2022 18:29:11
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
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()
{
    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;
}