Cod sursa(job #1743455)

Utilizator BogauuuBogdan Ivancu Bogauuu Data 18 august 2016 10:48:31
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>

using namespace std;

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

int a[16002];

int tran(int x,int n)
{
    int i,z;
    int nr=0;
    z=x;

    int cc = x-a[1];
    nr = 1;
    for (int i=2;i<=n;i++)
        if (cc - a[i] >= 0)
            cc -= a[i];
        else {
            nr++;
            cc = x-a[i];
        }
    return nr;
}

int n,k,i,st,dr,mid,maxim, suma;

int main()
{
    fin >> n >> k;
    for (i=1;i<=n;i++){
        fin >> a[i];
        if (a[i]>maxim)
            maxim=a[i];
        suma += a[i];
    }
    st=maxim;
    dr=suma;
    while (st<=dr)
    {
        mid=(st+dr)/2;
        if (tran(mid,n)>k) st=mid+1;
        else dr=mid-1;
    }
    fout << st;

    return 0;
}