Cod sursa(job #2058340)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 5 noiembrie 2017 15:07:33
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n,t,v[16001];

int main()
{
    fin >> n >> t;
    int i,maxim=-1,mij,poz;
    for(i=1;i<=n;i++)
    {
        fin >> v[i];
        if(v[i]>maxim)
            maxim=v[i];
    }
    int st=maxim;
    long long int dr=256000000;
    while(st<=dr)
    {
        mij=(st+dr)/2;
        int sum=0,nrmij=1;
        for(i=1;i<=n;i++)
        {
            if (sum + v[i] > mij)
            {
                sum = v[i];
                nrmij++;
            }
            else sum += v[i];
        }
        if(nrmij<=t)
        {
            dr=mij-1;
            poz=mij;
        }
        else st=mij+1;
    }
    fout << poz;
    return 0;
}