Cod sursa(job #1714526)

Utilizator raresm44vasile rares raresm44 Data 8 iunie 2016 16:36:44
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
int k,n,v[1000],x,sumavol,minim;
using namespace std;

bool verif(int nod)
{
    int tr=0;
    for(int i=1;i<=n;i++)
        {
            int vol=0;
            while(vol+v[i]<=x && i<=n)
                vol+=v[i];
            tr++;
        }
        if(tr<=k)
            return 1;
        return 0;
}

int cautbin()
{
    int pas=1<<28;
    int x=sumavol;
    while(pas)
    {
        if(x-pas>=minim && verif(x-pas))
            x-=pas;
        pas/=2;
    }
    return x;
}

int main()
{
    ifstream f("transport.in");
    ofstream g("transport.out");
    f>>n;
    for(int i=1;i<=n;i++)
        {
            f>>v[i];
            if(minim>v[i])
                minim=v[i];
            sumavol+=v[i];
        }

    g<<cautbin()/2;
    cout << "Hello world!" << endl;
    return 0;
}