Cod sursa(job #1464075)

Utilizator NicolaalexandraNicola Alexandra Mihaela Nicolaalexandra Data 22 iulie 2015 11:44:00
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 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) {
        x = 0;

        i = (p+u)/2;

        c = i;
        vs = 1;
        while (vs <= n){
            if (c-v[vs] >= 0){
                c-=v[vs++];
            }
            else{
                x++;
                c = i;
                //vs++;
            }
        }
        x++;

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

    }

    fout<<p;

    return 0;
}