Cod sursa(job #3360482)

Utilizator clara21Capac Clara Florentina clara21 Data 14 iulie 2026 13:01:13
Problema Transport Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
using namespace std;
ifstream cin("transport.in");
ofstream cout("transport.out");
int n, k ;
int v[16001];
bool valid(int mij) {
    int cmij = mij, tr = 1 ;
    for(int i = 1 ; i <= n ; i++) {
        if(v[i] < mij){
            mij -= v[i] ;
        }
        else {
            tr++;
            mij = cmij - v[i] ;
        }
    }
    if(tr <= k) {
        return true ;
    }
    else{
        return false ;
    }
}
int BSize(int s, int maxi) {
    int mij, st, dr ;
    st = maxi - 1 ;
    dr = s ;
    while(dr - st > 1) {
        if(valid(mij)) {
            dr = mij ;
        }
    }
    return dr ;
}
int main()
{
    int n, k, maxi = -1, s = 0, st, dr ;
    cin >> n >> k ;
    for(int i = 1 ; i <= n ; i++) {
        cin >> v[i] ;
        if(v[i] > maxi) {
            maxi = v[i] ;
        }
        s += v[i] ;
    }
    cout << BSize(s, maxi) ;
    return 0;
}