Cod sursa(job #1505752)

Utilizator adystar00Bunea Andrei adystar00 Data 19 octombrie 2015 18:46:51
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int d,n,v[16005];
bool verif(int val)
{
    int i,c=0,s;
    for (i=1;i<=n;)
    {
        s=0;
        while (s+v[i]<=val)
        {
            s=s+v[i];
            i++;
        }
        c++;
    }
    if (c<=d) return 1;
    else return 0;
}
int main()
{
    int i,ma,s=0,mij;
    f>>n>>d;
    for (i=1;i<=n;i++)
        f>>v[i];
    ma=v[1];
    for (i=2;i<=n;i++)
        ma=max(ma,v[i]);
    for (i=1;i<=n;i++) s=s+v[i];

    int lo=ma-1,hi=s+1;
    while (hi-lo>1)
    {
        mij=(hi+lo)/2;
        if(verif(mij)==1) hi=mij;
        else lo=mij;
    }
    g<<hi;
    return 0;
}