Cod sursa(job #2769812)

Utilizator Mendea_IanisMendea Ianis Teodor Mendea_Ianis Data 17 august 2021 20:12:13
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("transport.in");
ofstream fout("transport.out");

int main()
{
    int n,k,V[16005],maxim,transporturi,sol,st,dr,mid,ocupat;
    fin>>n>>k;
    maxim = -1;
    for(int i = 1;i<=n;i++)
    {
        fin>>V[i];
        if(V[i]>maxim)
            maxim = V[i];
    }
    st = maxim;
    dr = (1e9);
    while(st<=dr)
    {
        mid = (st+dr)/2;
        ocupat = 0;
        transporturi = 1;
        for(int i = 1;i<=n;i++)
        {
            if(ocupat+V[i]<=mid)
            {
                ocupat = ocupat + V[i];
            }
            else
            {
                ocupat = V[i];
                transporturi++;
            }
        }
        if(transporturi<=k)
            {
                sol = mid;
                dr = mid - 1;
            }
        else
            st = mid+1;


    }
    fout<<sol;
}