Cod sursa(job #1464080)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 22 iulie 2015 11:53:20
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>

using namespace std;

int n,k,i,x,vs,v[16003],maxim,c,j,aux,suma,p,u;

ifstream fin ("transport.in");

ofstream fout ("transport.out");

int main (){

    fin>>n>>k;
    maxim = 0;
    suma = 0;
    for (i=1;i<=n;i++){
        fin>>v[i];
        if (v[i]>maxim) {
            maxim = v[i];
        }
        suma += v[i];

    }


//    for (i=maxim;;i++){
    p = maxim;
    u = suma;
    while (p<=u) {
        i = (p+u)/2;
        c = i;

        x = 1;
        c -= v[1];
        for(j=2;j<=n;j++) {
            if (c >= v[j])
                c -= v[j];
            else {
                x++;
                c = i-v[j];
            }
        }

        if (x <= k)
            u = i-1;
        else
            p = i+1;

    }

    fout<<p;

    return 0;
}