Cod sursa(job #2082156)

Utilizator mateidanvladMatei Vlad mateidanvlad Data 5 decembrie 2017 19:15:26
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.6 kb
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;

ifstream in ("transport.in");
ofstream out ("transport.out");

int v[16001],n,k;

bool sepoate (int c) {
    int cc=0, nr=0;
    for(int i=0;i<n;i++) {
        if(v[i]>c) {
            return false;
        }
        if(v[i]>cc) {
            nr++;
            cc=c;
        }
        cc-=v[i];
        if(nr>k) return false;
    }
    return true;
}

int main() {
    int pas=1<<27, r=0;
    while(pas!=0) {
        if(!sepoate(r+pas)) {
            r+=pas;
        }
        pas/=2;
    }
    r++;
    out<<r;

    return 0;
}