Cod sursa(job #2486850)

Utilizator cameliapatileaPatilea Catalina Camelia cameliapatilea Data 3 noiembrie 2019 16:13:09
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n, nrTransp;
int saltele[16005] = {0};
int BinarySearch(int Left, int Right)
{
    int ultim = Right;
    while(Left <= Right)
    {
        int mid = (Left + Right) / 2;
        int index = 0;
        int k = 1;
        for(int i = 1; i<= n; i++)
            if(saltele[i] - saltele[index] > mid)
            {
                index = i - 1;
                k++;
            }
        if(k > nrTransp)
            Left = mid + 1;
        else {
            Right = mid - 1;
            ultim = mid;
        }
    }
    return ultim;
}
int main()
{
    int temp = 0;
    int vf = 0;
    f >> n >> nrTransp;
    for(int i = 1; i <= n; i++)
    {

       f >> temp;
       if(temp > vf)
           vf = temp;
       saltele[i] = temp + saltele[i - 1];
    }
    int Left = vf;
    int Right  = saltele[n];
    g << BinarySearch(Left, Right);

}