Cod sursa(job #2175641)

Utilizator canmihaiCancescu Mihai canmihai Data 16 martie 2018 18:14:13
Problema Transport Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <iostream>
#include <fstream>
int v[100000],n,k,st=-1,dr,p=0,nrt,tr=0,minim;
using namespace std;
int main () {
    ifstream fin("transport.in");
    ofstream fout("transport.out");
    fin>>n>>k;
    for(int i=0;i<n;i++){
        fin>>v[i];
        dr+=v[i];
        if(v[i]>st)
            st=v[i];
    }
    while(st<=dr){
        p=0;
        nrt=0;
        int mid=(st+dr)/2;
        while(p<n){
            tr=0;
            while(tr<mid && p<n)
                tr+=v[p++];
            if(tr>mid){
                tr-=v[--p];
            }
            nrt++;

        }
        if(nrt<=k){
            dr=mid-1;
            minim=mid;
        }
        else
            st=mid+1;

        }

    fout<<minim;








    return 0;
}