Cod sursa(job #1153235)

Utilizator andreismara97Smarandoiu Andrei andreismara97 Data 25 martie 2014 12:32:45
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include<fstream>
using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int v[16005],n,k;


int verif(int capac)
{
    int i, nr=1 ,suma=0 ;
    for(i=1;i<=n;i++)
    {
        if(v[i]>capac)
            return 0;
        if(suma+v[i]<=capac)
            suma+=v[i];
        else
            {
                nr++;
                suma=v[i];
            }
    }
    return nr<=k;
}

int main ()
{
    int i,j,dev;
    in>>n>>k;
    for(i=1;i<=n;i++)
        in>>v[i];

    i=0;
    dev=1<<27;
    while(dev)
    {
        if(!verif(i+dev))
            i+=dev;
        dev/=2;
    }
    out<<i+1<<'\n';
    return 0;
}