Cod sursa(job #1350607)

Utilizator singsingRizea Andrei singsing Data 20 februarie 2015 20:58:39
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>

using namespace std;

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

int main()
{
    int n,k,s=0,v[16000],max=0,i,bn,mij,sf,m,cont,r;
    in>>n>>k;
    for(i=1;i<=n;i++)
    {
        in >>v[i];
        s=s+v[i];
        if(max<v[i])
            max=v[i];
    }
    bn=max;
    sf=s;
    while(bn<=sf)
    {
        mij=(bn+sf)/2;
        m=0;
        cont=1;
        for(i=1;i<=n;i++)
        {
            m=m+v[i];
            if(m>mij)
            {
                m=v[i];
                cont++;
            }
        }
        if(cont<=k)
            {sf=mij-1;
            r=mij;}
        else
            {bn=mij+1;
            r=mij+1;}
    }
    out<<r;
    return 0;
}