Cod sursa(job #1971647)

Utilizator Marina23Oprea Marina Marina23 Data 20 aprilie 2017 19:22:54
Problema Transport Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>

using namespace std;

int N,K,i,Sum,St,Dr,Mij,A[16001],j,S,Nr,Rez;

int main()
{
    ifstream fin("transport.in");
    ofstream fout("transport.out");

    fin>>N>>K;
    Sum=0;
    for(i=1;i<=N;i++)
    {
        fin>>A[i];
        Sum+=A[i];
    }//for i
    St=N;
    Dr=Sum;
    while(St<=Dr)
    {
        Mij=(St+Dr)/2;
        i=1;
        Nr=0;
        while(i<=N)
        {
            S=0;
            j=i;
            Nr++;
            while(j<=N and S+A[j]<=Mij)
            {
                S+=A[j];
                j++;
            }//while
            i=j;
        }//while
        if(Nr<=K)
        {
            Dr=Mij-1;
            Rez=Mij;
        }
        else
            St=Mij+1;
    }//while
    fout<<Rez;

    fin.close ();
    fout.close();
    return 0;
}