Cod sursa(job #1538629)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 29 noiembrie 2015 15:36:52
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>

using namespace std;
int n,i,k,mini,v[20000];
int ctb(int st, int dr)
{
    int s,nr,i,m;
    s=0;
    nr=1;
    m=(st+dr)/2;
    if(st==dr)
        return st;
    for(i=n; i>0; i--)
    {
        if(s+v[i]>m)
        {
            s=v[i];
            nr++;
        }
        else
        s+=v[i];
    }
    if(nr>k)
    return ctb(m+1,dr);
    return ctb(st,m);
}
int main()
{
    ifstream f("transport.in");
    ofstream g("transport.out");
    f>>n>>k;
    for(i=1; i<=n; i++)
    {
        f>>v[i];
        if(mini<v[i])
            mini=v[i];
    }
    g<<ctb(mini,256000000);
    f.close(); g.close();
}