Cod sursa(job #2528438)

Utilizator Vlad_AnicaAnica-Popa Vlad-Ioan Vlad_Anica Data 21 ianuarie 2020 21:10:48
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int v[16000];

int main()
{
    int n,k,mini=16001,s,i,volum,maxx=0,cpvolum,incarcari;
    fin >> n >> k;
    s=0;
    for(i=0;i<n;i++)
    {
        fin >> v[i];
        s+=v[i];
        if(maxx<v[i])
            maxx=v[i];
    }
    s=(s+k-1)/k;
    if(maxx>s)
        volum=maxx;
    else
        volum=s;

    incarcari=k+1;
    mini=0;
    cpvolum=volum;
    while(incarcari>k)
    {
        volum+=mini;
        cpvolum=volum;
        incarcari=1;
        mini=16001;
        for(i=0;i<n;i++)
        {
            if(volum<v[i])
            {
                if(mini>v[i]-volum)
                    mini=v[i]-volum;
                volum=cpvolum;
                incarcari++;
            }
            volum-=v[i];
        }
        volum=cpvolum;
    }
    fout << volum;


    return 0;
}