Cod sursa(job #2277756)

Utilizator LucianTLucian Trepteanu LucianT Data 6 noiembrie 2018 20:02:25
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;

const int maxN=16001;

int n,k;
int v[maxN];

bool notEnough(int x){
    int cnt=1;
    int currWeight=0;

    for(int i=1;i<=n;i++)
        if(currWeight+v[i]<=x)
            currWeight+=v[i];
        else{
            currWeight=v[i];
            cnt++;
        }

    return cnt>k;
}

int main(){
    ifstream cin("transport.in");
    ofstream cout("transport.out");

    cin>>n>>k;
    for(int i=1;i<=n;i++)
        cin>>v[i];

    int sol;
    int step=1<<30;

    for(sol=0;step>0;step>>=1)
        if(notEnough(step))
            sol+=step;

    cout<<sol+1;

    return 0;
}