Cod sursa(job #1453316)

Utilizator DrumeaVDrumea Vasile DrumeaV Data 23 iunie 2015 11:24:28
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");

const int Dim = 17000;

int N,K,T[Dim],S;

int Check(int C)
{
    int Nr = 0,i = 1;

    while (i <= N)
    {
        if (T[i] > C) return 2*K;
        int x = 0;

         while (i <= N && x + T[i] <= C)
            x += T[i],
            i++;

        Nr++;
    }
    return Nr;
}

int main()
{
    fin >> N >> K;

     for (int i = 1;i <= N;i++)
        fin >> T[i],S += T[i];

     int L = 1,R = S;

     do
     {
         int Mid = (L + R) / 2;

         if (Check(Mid) <= K) R = Mid;
                         else L = Mid + 1;

     }while (R > L);

     fout << R;

    return 0;
}