Cod sursa(job #2375546)

Utilizator DavidSopDavid Paul DavidSop Data 8 martie 2019 10:25:56
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,v[16004],maxx=-1,i,sum,st,dr,mij,ut,ver,e;
int main()
{
    fin>>n>>k;
    for (i=1;i<=n;i++){
        fin>>v[i];
        if (v[i]>=maxx)maxx=v[i];
        sum+=v[i];
    }
    st=maxx;
    dr=sum;
    ut=(st+dr)/2;
    while (dr!=st){
        e=0;
        mij=(st+dr)/2;
        i=1;
        ver=0;
        while (i<=n){
            ver+=v[i];
            if (ver>mij){
                ver-=v[i];
            }
            if (ver>=mij)e++;
            i++;
        }
        if (e>k)st=mij+1;
        else dr=mij-1;
        if (e==k){
            if (mij<ut)ut=mij;
        }
    }
    fout<<mij;
    return 0;
}