#include #include #include #include #include #include #define pb push_back using namespace std; int n; long long a, result = 0; long long tab[100007]; vector res; int main() { cin >> n; for (int i = 0; i < n; i++) cin >> tab[i]; for (int k = 0; k < n; k++) { set> s; for (long long i = 0; i < k; i++) s.insert({tab[i], i}); for (int i = k; i < n; i++) { s.insert({tab[i], i}); res.pb(s.rbegin()->first); s.erase({tab[i - k], i - k}); } } // second for (int k = 0; k < res.size(); k++) { set> s; for (long long i = 0; i < k; i++) s.insert({res[i], i}); for (int i = k; i < res.size(); i++) { s.insert({res[i], i}); result += s.rbegin()->first; s.erase({res[i - k], i - k}); } } cout << result << "\n"; return 0; }