Cod sursa(job #1880451)

Utilizator Emil64Emil Centiu Emil64 Data 15 februarie 2017 19:23:15
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int v[16005]={0}, n, k, s, max, m, st, dr, gr, gr2;
    ifstream f("transport.in");
    ofstream g("transport.out");
    f >> n >> k;
    for(int i=1;i<=n;++i){
        f>>v[i];
        s += v[i];
        if(v[i]>max) max=v[i];
    }
    st=max; dr=s;
    while(st!=dr){

        m = (st+dr)/2;
        gr = 0;
        gr2 = 0;
        for(int i=1;i<=n;++i)
        {
            gr += v[i];
            if (gr>m){
                gr = v[i];
                ++gr2;
            }
        }
        if (gr2>=k) st=m+1; else dr=m;
    }
    g << st <<"\n";
}