Cod sursa(job #2083499)

Utilizator vladsftVlad Safta vladsft Data 7 decembrie 2017 19:40:35
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
using namespace std;

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

const int N = 16001;

int v[N], n, k;
bool sepoate(int c)
{
    int i, temp = 0, cc = 0, nr = 0;
    for (i = 0; i < n; i++)
    {
        if (v[i] > c)
            return false;
        if (v[i] > cc){
            nr++;
            cc = c;
        }
        cc -= v[i];
    }
    return (nr <= k);
}
int main()
{
    int pas = 1 << 27, r = 0, i;
    f >> n >> k;
    for (i = 0; i < n; i++)
        f >> v[i];
    while (pas != 0){
        if (!sepoate(r + pas)){
            r += pas;
        }
        pas /= 2;
    }
    r++;
    g << r;
    return 0;
}