Cod sursa(job #1435717)

Utilizator Tomi98Osvath Tamas Tomi98 Data 14 mai 2015 10:31:28
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 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=1;
        for (int i=1; i<=n; i++)
        {
            sMom+=v[i];
            if (sMom>=mij) { sMom=0; kMom++;}
        }
        if (kMom<=k) ld=mij;
            else if (kMom>k) ls=mij;
    }
    sMom=0;
    kMom=1;
    mij2=mij-1;
    for (int i=1; i<=n; i++)
    {
        sMom+=v[i];
        if (sMom>=mij) { sMom=0; kMom++; }
    }
    if (kMom==k) g<<mij2;
            else g<<mij;
    return 0;
}