Cod sursa(job #1801144)

Utilizator usureluflorianUsurelu Florian-Robert usureluflorian Data 8 noiembrie 2016 18:20:11
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>

using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int i,n,sum,v[16001],nr,k,p,mare,m;
bool gicu(int s)
{
    nr=1;
    sum=0;
    for(i=1;i<=n;++i)
    {
        sum+=v[i];
        if(sum>s) {++nr;sum=v[i];}
        if(nr>k)return 0;
    }
    return 1;
}
int main()
{
    f>>n>>k;
    for(i=1;i<=n;++i) {f>>v[i];p+=v[i];if(v[i]>mare)mare=v[i];}
    while(mare<=p)
    {
        m=(mare+p)/2;
        if(gicu(m)) p=m-1;
        else mare=m+1;
    }
    g<<mare;
    return 0;
}