Cod sursa(job #1718549)

Utilizator mariateguianiMaria Teguiani mariateguiani Data 18 iunie 2016 11:05:52
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n,k,v[16001],L=13;

bool sepoate(int cap) {
    int a=k, sum=0,i;
    for(i=1; i<=n; i++) {
        if(a!=0)
            if(sum<cap)
                sum=sum+v[i];
            else {
                i--;
                a--;
                //sum=0;
                sum=v[i];
            }
        else
            return false;
    }
    return true;
}

void cautare() {
    int pas=1<<L;
    int i=0;
    while(pas!=0) {
        if(!sepoate(i+pas))
            i+=pas;
        pas/=2;
    }
    fout<<i+1;
}

int main() {
    int i;
    fin>>n>>k;
    for(i=1; i<=n; i++)
        fin>>v[i];
    cautare();
}