Cod sursa(job #1681418)

Utilizator WladDalwMvladutu cristian vlad WladDalwM Data 9 aprilie 2016 13:59:18
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream in("transport.in");
ofstream out("transport.out");
int n,k,a[16001],r,s,i,j,st,dr,piv,m;

int main(){
    int nrmax;
    in>>n>>k;
    for(i=1;i<=n;i++) {in>>a[i];
     if(a[i]>nrmax)
        {
            nrmax=a[i];
        }
    }
    st=nrmax;
    dr=256000001;
    while(st<=dr){
     piv=(st+dr)/2;
     m=piv;
     s=0;
     r=1;
     for(i=1;i<=n;i++) {
         s+=a[i];
         if (s>m){
                 s=a[i];
             r++;

            }
        }
        if (r<=k){
         dr=piv-1;
        }
        else
        st=piv+1;

    }
    out <<st;


 return 0;
}