Cod sursa(job #1429639)

Utilizator Miruna_DMiruna Miruna_D Data 6 mai 2015 20:18:55
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
#define Nmax 16001
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");

int volum[Nmax],n,k,l=-1,r;

void Read()
{
    fin>>n>>k;
    int i;
    for(i=1;i<=n;i++)
    {    fin>>volum[i];
         r+=volum[i];
        l=max(l,volum[i]);
    }


}
int transport(int val)
{
    int i,nr=1,s=0;

    for(i=1;i<=n;i++)
    {
        if(s+volum[i]<=val)
            s+=volum[i];
        else
        {
            nr++;
            s=volum[i];
        }

    }
    return nr;
}


int Binary_Search()
{
    int mid,sol=0;

    while(l<=r)
    {
        mid=(l+r)/2;
        if(transport(mid)<=k)
          r=mid-1;

        else
            l=mid+1;
    }

    return l;
}
int main()
{
    Read();
    fout<<Binary_Search();
    return 0;
}