Cod sursa(job #1730205)

Utilizator EduardLatcanEduard Latcan EduardLatcan Data 16 iulie 2016 15:54:26
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>

using namespace std;

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

int nrMxTr,n,v[16001];

bool mrg(int m)
{
    int s=0,i,g=1;
    for(i=0; i<n; i++)
    {
        if(s+v[i]<=m)
            s=s+v[i];
        else
        {
            s=v[i];
            g++;
        }
    }
    if(g<=nrMxTr)
        return 1;
    else return 0;
}

int binar(int stg,int dr)
{
    if(stg == dr)
    return stg;
    int mijl;
    mijl=(stg+dr)/2;
    if(mrg(mijl)==1)
        return binar(stg,mijl);
    else return binar(mijl+1,dr);

}

int main()
{
    int mx=0,s=0,mijl;
    in>>n>>nrMxTr;
    for(int i=0; i<n; i++)
    {
        in>>v[i];
        if(mx<v[i])
            mx=v[i];
        s = s + v[i];
    }
    out<<binar(mx,s);
    return 0;
}