Cod sursa(job #2242787)

Utilizator Gicu12345Puradelul Albastru Gicu12345 Data 19 septembrie 2018 15:51:52
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
//#include<iostream>
using namespace std;
int a, b, c, d, v[16001], k=0, m, lm;
int z(int lm, int m)
{
    int st = 1;
    int dr = m;
    int ret = 0;
    while(st<=dr)
    {
        int mij = (st + dr) / 2;
        int nr = 1;
        int cap = 0;
        for(int i=0;i < lm;i++)
        {
            if(cap + v[i] > mij)
            {
                nr++;
                cap = v[i];
            }
            else
                cap = cap + v[i];
        }
        if(nr<=d)
        {
            ret = mij;
            dr=mij-1;
        }
        else
            st = mij+1;
    }
    return ret;
}
int main()
{
    ifstream cin ("transport.in");
    ofstream cout ("transport.out");
    int s=0;
    cin>>m>>d;
    for(int i=0;i<m;i++)
    {
        cin>>v[i];
        s+=v[i];
    }
    b=z(m, s);
    cout<<b;
    return 0;
}