Cod sursa(job #3360479)

Utilizator ilinca_iordaniordan ilinca ilinca_iordan Data 14 iulie 2026 12:50:42
Problema Transport Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
const int NMAX=16000;
int n,k,v[NMAX];
bool esteValid(int mij){
    int tr=1,copiemij=mij;
    for(int i=0;i<n;i++){
        if(v[i]<mij){
            mij-=v[i];
        }
        else{
            tr++;
            mij=copiemij-v[i];
        }
    }
    if(tr<=k){
        return true;
    }
    else{
        return false;
    }

}
int BinarySearchSize(int max,int sum){
    int st,dr,mij;
    st=max-1;
    dr=sum;
    while(dr-st>1){
        mij=(dr+st)/2;
        if(esteValid(mij)){
            dr=mij;
        }
        else{
            st=mij;
        }
    }
    return st;

}

int main()
{
    int sum=0,max=0;
    fin>>n>>k;
    for(int i=0;i<n;i++){
        fin>>v[i];
        if(v[i]>max){
            max=v[i];
        }
        sum+=v[i];
    }
    fout<<BinarySearchSize(max,sum);
    return 0;
}