#include #include #include #include using namespace std; void maxTransform(vector &vec){ int vecSize = vec.size(); for ( int k = 1; k < vecSize; k++ ){ for ( int i = 0; i < vecSize - k; i++ ){ int j = i + k; // cout << "k: " << k << " || i: " << i << " || j" << j << endl; int currMax = *max_element(vec.begin()+i, vec.begin()+j+1); // cout << currMax << endl << endl; vec.push_back(currMax); } } // cout << "\n\n\n"; } void printVec(vector &vec ){ for(auto i : vec){ cout << i << ","; } cout << endl; } int main(int argc, char *argv[]) { int n; cin >> n; vector a(n); for(int a_i = 0; a_i < n; a_i++){ cin >> a[a_i]; } maxTransform(a); maxTransform(a); cout << std::accumulate(a.begin(), a.end(), 0) << endl; return 0; }