Cod sursa(job #2160651)

Utilizator ivddabDabelea Ioana-Viviana ivddab Data 11 martie 2018 13:36:55
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>

using namespace std;
ifstream f("transport.in");
ofstream g("transport.out");
int n,k,s,max1,st,dr,min1,nr,mijl,i;
int a[16002];
int main()
{
    f>>n>>k; s=0; max1=0;
    for(i=1;i<=n;i++){
        f>>a[i]; s+=a[i];
        max1=max(max1,a[i]);
    }
    st=max1; dr=s; min1=dr+1;
    while(st<=dr){
        mijl=(st+dr)/2;
        nr=1; s=0;
        for(i=1;i<=n;i++){
            s+=a[i];
            if(s>mijl) { s=a[i]; nr++; }
        }
        if(nr>k) st=mijl+1;
         else{
            if(nr<=k) min1=min(min1,mijl);
            dr=mijl-1;
         }
    }
    g<<min1<<'\n';
    return 0;
}