Cod sursa(job #1025761)

Utilizator dj_vlad_22Pocol Vlad dj_vlad_22 Data 10 noiembrie 2013 15:40:01
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
//Transport
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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


int main(){
    int n,k,s,cnt;
    int st=0 , dr=1000000000;
    int m;
    int a[16000];
    fin >> n >> k;
    for (int i = 1; i <= n; ++i)
    {
        fin >> a[i];
        if (a[i] > st) st = a[i];
    }
while(st < dr)
    {
        s = 0, cnt = 1;
        m = (dr + st)/2;
        for (int i = 1; i <= n; ++i)
            if (s + a[i] <= m)
                s += a[i];
            else
                s = a[i], cnt++;
        if (cnt > k)    st = m+1;
        else    dr = m;
    }
     fout << st;

    return 0;
}