Cod sursa(job #1873728)

Utilizator WebDesignbyTMGhiorghiu Ioan-Viorel WebDesignbyTM Data 9 februarie 2017 12:58:17
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#define DM 100005
using namespace std;
ifstream fi("transport.in");
ofstream fo("transport.out");

int n, k, v[DM], i, st = 0, dr, mid, fin;

bool functie(int mid)
{
    int aux=0, c=1;
    for(int i = 1; i <= n; ++i)
    {
        aux+=v[i];
        if(aux > mid)
            aux = v[i], c++;
    }
    if(c>k)
        return 0;
    return 1;
}

int main()
{
    fi >> n >> k;
    for (i = 1; i <= n; ++i)
    {
        fi >> v[i];
        st = max(st,v[i]);
    }
    dr = 16000*16000;
    while (st <= dr)
    {
        mid = (st + dr)/2;
        if (functie(mid))
        {
            dr = mid - 1;
            fin = mid;
        }
        else
            st = mid + 1;
    }
    fo << fin;
    return 0;
}