Cod sursa(job #1028334)

Utilizator sorinos1357FMI Siman Marius Sorin sorinos1357 Data 13 noiembrie 2013 21:17:08
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <fstream>

using namespace std;

int main(){
    int n,k,ma=0,s,nr_dr,sum=0,*v,m;

    ifstream f("transport.in");
    f>>n>>k;
    v=new int[n];
    for(int i=0;i<n;++i){
        f>>v[i];
        sum+=v[i];
        if(ma<v[i])
            ma=v[i];
    }
    f.close();

    while(ma<sum){
        nr_dr=1;
        s=0;
        m=(ma+sum)>>1;
        for(int i=0;i<n;++i)
            if(s+v[i]<=m)
                s+=v[i];
            else{
                s=v[i];
                ++nr_dr;
            }
        if(k<nr_dr)
            ma=m+1;
        else
            sum=m;
    }
    delete v;
    ofstream g("transport.out");
    g<<ma;
    g.close();
    return 0;
}