Cod sursa(job #2282719)

Utilizator IonDragosIon Dragos IonDragos Data 14 noiembrie 2018 13:45:58
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int n,k,v[16009],i,s,st,dr,mij,cmij,maxx,cont;
int main()
{
    fin>>n>>k;
    for(i=1;i<=n;i++)
        fin>>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;
        }
    }
    fout<<mij;
    fin.close();
    fout.close();
    return 0;
}