Cod sursa(job #2210188)

Utilizator MatteoalexandruMatteo Verzotti Matteoalexandru Data 5 iunie 2018 20:32:13
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>

using namespace std;
ifstream in ("transport.in");
ofstream out ("transport.out");
int v[16005];
void verif(int trans,int &st,int &dr,int n)
{
    int mij,l=1,s=0;
    while(st<=dr)
    {
        l=1;
        s=0;
        mij=(st+dr)/2;
        for(int i=1;i<=n;i++)
        {
            s+=v[i];
            if(s+v[i+1]>mij)
            {
                l++;
                s=0;
            }
        }
        if(l>trans)
            st=mij+1;
        else
            dr=mij-1;
    }
}
int main()
{
    int n,trans,i,st=-1,dr=0;
    in>>n>>trans;
    for(i=1;i<=n;i++){
        in>>v[i];
        if(v[i]>st)
            st=v[i];
        dr+=v[i];
    }
    verif(trans,st,dr,n);
    out<<st;
    return 0;
}