Cod sursa(job #3352215)

Utilizator Maya_PopaPopa Maya Diana Maya_Popa Data 25 aprilie 2026 11:04:13
Problema Transport Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#define MAX 16000

using namespace std;
ifstream fin ("transport.in");
ofstream fout ("transport.out");
int v[MAX];
int main() {
    int n,k,i,j,st,dr,mij,s,sum,cnt,maxim;
    fin>>n>>k;
    s=0;
    maxim=0;
    for (i=0; i<n; i++) {
        fin>>v[i];
        s+=v[i];
        if (maxim<v[i]) {
            maxim=v[i];
        }
    }
    st=maxim;
    dr=s;
    while (dr>=st) {
        mij=(st+dr)/2;
        //cout<<"st: "<<st<<" dr: "<<dr<<" mij: "<<mij<<endl;
        cnt=0;
        i=0;
        while (i<n) {
            cnt++;
            //cout<<"cnt: "<<cnt<<" i: "<<i<<endl;
            if (cnt>k) {
                st=mij+1;
                break;
            }
            sum=v[i];
            j=i+1;
            while (j<n && (sum+v[j])<=mij) {
                sum+=v[j];
                j++;
            }
            //cout<<"sum: "<<sum<<" j: "<<j<<endl;
            i=j;
        }
        if (cnt<=k) {
            dr=mij-1;
        }
    }
    fout<<st<<endl;
    return 0;
}