Cod sursa(job #1435718)

Utilizator Tomi98Osvath Tamas Tomi98 Data 14 mai 2015 10:43:39
Problema Transport Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>

using namespace std;

ifstream f("transport.in");
ofstream g("transport.out");
int kMom, mij, sMom, n, k, ls, ld, s, mx, v[16005], mij2;
int main()
{
    f>>n>>k;
    for (int i=1; i<=n; i++)
    {
        f>>v[i];
        if (v[i]>mx) mx=v[i];
        s+=v[i];
    }
    ls=mx;
    ld=s;
    while (ld-ls!=1)
    {
        mij=ls+(ld-ls)/2;
        sMom=0;
        kMom=0;
        for (int i=1; i<=n; i++)
        {
            sMom+=v[i];
            if (sMom>mij) { sMom=v[i]; kMom++;}
            if (i==n && sMom!=0) kMom++;
        }
        if (kMom<=k) ld=mij;
            else ls=mij;
    }
    sMom=0;
    kMom=0;
    mij2=mij-1;
    for (int i=1; i<=n; i++)
    {
        sMom+=v[i];
        if (sMom>=mij2) { sMom=0; kMom++; }
        if (i==n) kMom++;
    }
    if (kMom==k) g<<mij2;
            else g<<mij;
    return 0;
}