Cod sursa(job #1798215)

Utilizator d0rina2011Craciun Dorina d0rina2011 Data 4 noiembrie 2016 22:35:59
Problema Transport Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, c, k, v[16001];
int main()
{
    int i, j, s = 0, cmax = 0, ok = 0, m, nr, sp, ip;
    fin>>n>>k;
    for(i = 1; i <= n; ++i){
        fin>>v[i];
        s += v[i];
        if(v[i] > cmax)cmax = v[i];
    }
    i = cmax;
    j = s;
    if(n == 1) fout<<1;
    else{
    while(i <= j){
        m = (i + j) / 2;
        nr = 0;
        sp = 0;
        for(ip = 1; ip <= n; ++ip){
            if(sp + v[ip] <= m){
                sp += v[ip];
            } else {
                nr++;
                sp = v[ip];
            }
        }
        if(nr < k) {
            j = m - 1;
        } else {
            i = m + 1;
        }
    }
    fout<<m;
    }
    return 0;
}