Cod sursa(job #1704711)

Utilizator Deea007Andreea Deea007 Data 19 mai 2016 11:21:52
Problema Transport Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream>
#include <fstream>
 
using namespace std;
ifstream fi("transport.in");
ofstream fo("transport.out");
int n,k,a[16001],r,s,i,j,st,dr,piv,m;
 
int main(){
    int nrmax;
    fi>>n>>k;
    for(i=1;i<=n;i++) {fi>>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;
 
    }
    fo <<st+1;
 
 
 return 0;
}