Cod sursa(job #3360476)

Utilizator MirceaRegeleCeapaMircea Gheorghe MirceaRegeleCeapa Data 14 iulie 2026 12:37:00
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#define NMAX 16000
#define KMAX 16000
using namespace std;
ifstream fin("transport.in");
ofstream fout("transport.out");
int v[NMAX+1],n,k;
bool sizegud(int cap){
    int i,tra,dim;
    tra=1;
    dim=cap;
    for(i=1;i<=n && tra<=k;i++){
        if(dim>=v[i])
        dim-=v[i];
        else{
            tra++;
            dim=cap-v[i];
        }
    }
    if(tra<=cap)
    return true;
    else
    return false;
}
int binsrch(int maxi,int sum){
    int st,dr,mij;
    st=maxi-1;
    dr=sum;
    while(dr-st>1){
        mij=(st+dr)/2;
        if(sizegud(mij)==true)
        dr=mij;
        else
        st=mij;
    }
    return dr;
}
int main()
{
    int i,s=0,maxi=0,n;
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>v[i];
        s+=v[i];
        if(v[i]>maxi)
        maxi=v[i];
    }
    fout<<binsrch(maxi,s)+1;
}