Cod sursa(job #1453303)

Utilizator savinvadim1312savin vadim savinvadim1312 Data 23 iunie 2015 10:51:29
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("transport.in");
ofstream g("transport.out");

long int N,t[16005],s,K,m,l,r;

bool check(int v) {

   int k1=0, s=0;

   for (int i=0; i<N; ++i)
    if (s+t[i]<=v) s+=t[i];
    else {
        ++k1;
        s=t[i];
    }

   ++k1;

   return k1<=K;

}

int main()
{
    f>>N>>K;
    for(int i=0;i<N;i++) {
            f>>t[i];
            m=max(m,t[i]);
    }

    l=m; r=1000000000;

    while (l<=r) {

        int mid=(l+r)/2;

        if (check(mid)) r=mid-1;
        else l=mid+1;

    }

    g<<l;


    return 0;
}