Cod sursa(job #2735265)

Utilizator ShadowZoidPorojan Victor-Andrei ShadowZoid Data 2 aprilie 2021 09:52:25
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb

#include <fstream>

using namespace std;
#define NMAX 16005

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

int n, s[NMAX], k;

int nrTransporturi(int cap)
{
    int nr=1,sum=0;
    for(int i=1;i<=n;i++)
        if(sum+s[i]<=cap)
            sum+=s[i];
        else
        {
            nr++;
            sum=s[i];
        }

    return nr;

}
int main()
{
    int cmax=0,cmin=0;
    fin>>n>>k;
    for(int i=1;i<=n;i++)
        {
            fin>>s[i];
            cmax+=s[i];
            cmin=max(cmin,s[i]);
        }
    int st=cmin,dr=cmax, cmij, sol;
    while(st<=dr)
    {
        cmij=(st+dr)/2;
        if(nrTransporturi(cmij)>k)
            st=cmij+1;
        else
        {
            sol=cmij;
            dr=cmij-1;
        }
    }

    fout<<sol;

    return 0;
}