Cod sursa(job #2181273)

Utilizator RaduNRadu Negovan RaduN Data 21 martie 2018 16:10:44
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int v[16001], n, k;
bool e_bun(int c){
    int s, trans=0, curent=0;
    for (int i=0; i<n; i++){
        s+=v[i];
        if (s>c){
            if (curent==0){
                return false;
            }
            else{
                trans++;
                s=0;
                curent=0;
            }
        }
        curent++;
    }
    if (trans>k){
        return false;
    }
    return true;
}
int main() {
    f>>n>>k;
    for (int i=0; i<n; i++){
        f>>v[i];
    }
    int pas=1<<14, c=0;
    while (pas!=0){
        if (pas+c<=n && !e_bun(c)){
            c+=pas;
        }
        pas/=2;
    }
    g<<c+(pas+1)*2;
    return 0;
}