Cod sursa(job #2282718)

Utilizator IonDragosIon Dragos IonDragos Data 14 noiembrie 2018 13:43:45
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,k,v[16009],i,s,st,dr,mij,cmij,maxx,cont;
int main()
{
    cin>>n>>k;
    for(i=1;i<=n;i++)
        cin>>v[i];
    for(i=1;i<=n;i++)
    {
        s=s+v[i];
        if(v[i]>maxx)
            maxx=v[i];
    }
    st=maxx;
    dr=s;
    mij=(dr+st)/2;
    while(st!=mij && dr!=mij)
    {
        cmij=mij;
        cont=0;
        for(i=1;i<=n;i++)
        {
            if(v[i]<cmij)
                cmij=cmij-v[i];
            else
            {
                cmij=mij;
                cmij=cmij-v[i];
                cont++;
            }
        }
        if(cont<k)
        {
            dr=mij;
            mij=(st+dr)/2;
        }
        else
        {
            st=mij;
            mij=(st+dr)/2;
        }
    }
    cout<<mij;
    return 0;
}