Cod sursa(job #1504099)

Utilizator raulrusu99Raul Rusu raulrusu99 Data 17 octombrie 2015 12:21:13
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 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];
    while (ma!=mij)
    {
        mij=(ma+s)/2;
        if(verif(mij)==1) s=mij-1;
        else ma=mij+1;
    }
    g<<ma;
    return 0;
}