// compile: make data
// run: ./data < data.in
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#ifdef LOCAL
#include <debug/codeforces.h>
#define debug(x...) _debug_print(#x, x);
#define Debug(x...) _debug_print_format(#x, x);
std::ifstream terminal("/dev/tty");
#define PP cerr<<"\033[1;30mpause...\e[0m",terminal.ignore();
#else
#define debug(x...)
#define Debug(x...)
#define PP
#endif
template<typename...Args> void print_(Args...args){((cout<<args<<" "),...)<<endl;}
#define rep(i,a,b) for(int i=(a);i<(int)(b);++i)
#define sz(v) ((int)(v).size())
#define print(...) print_(__VA_ARGS__);
#define FIND(a, x) ((find(a.begin(),a.end(),(x))!=a.end())?1:0)
#define cmin(x,...) x=min({(x),__VA_ARGS__})
#define cmax(x,...) x=max({(x),__VA_ARGS__})
#define INTMAX (int)(9223372036854775807)
#define INF (int)(1152921504606846976)
#define NaN (int)(0x8b88e1d0595d51d1)
#define double long double
#define int long long
#define uint unsigned long long
#define MAXN 200010
struct stmin {
vector<int> a, lg;
vector<vector<int>> dp;
stmin(vector<int> v) {
a = v;
build();
}
void build() {
int logn = log2(sz(a)) + 2;
dp.assign(sz(a), vector<int>(logn, 0));
rep(i, 0, sz(a)) dp[i][0] = a[i];
rep(j, 1, logn) {
rep(i, 0, sz(a)) {
dp[i][j] = min(dp[i][j-1], dp[min(i + (1 << (j-1)), sz(a)-1)][j-1]);
}
}
lg.resize(sz(a)+1); lg[1] = 0;
rep(i, 2, sz(a)+1) lg[i] = lg[i/2] + 1;
}
int query(int l, int r) {
int j = lg[r - l + 1];
return min(dp[l][j], dp[r - (1 << j) + 1][j]);
}
};
int32_t main() {
ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
int n; cin >> n;
vector<int> a(n);
rep(i, 0, n) cin >> a[i];
stmin st(a);
function<int(int, int)> cdq = [&](int l, int r) {
if (l == r) return a[l];
int mid = (l + r) / 2;
int lc = cdq(l, mid), rc = cdq(mid+1, r);
set<int, greater<int>> s;
rep(i, l, r+1) if (a[i] <= min(a[mid], a[mid+1])) s.insert(a[i]);
int i = mid, j = mid+1, height = min(a[mid], a[mid+1]), cur = 2 * height;
for (auto it = s.begin(); it != s.end(); ++it) {
while (i-1 >= l && a[i-1] >= *it) --i, cmin(height, a[i]);
while (j+1 <= r && a[j+1] >= *it) ++j, cmin(height, a[j]);
cmax(cur, (j - i + 1) * height);
}
return max({lc, rc, cur});
};
int ans = cdq(0, n-1);
cout << ans << endl;
return 0;
}
Alright guys, took a plunge into betjee777. I must admit I was impressed after registration. Decent odds and smooth interface. Give it a try: betjee777
Win777slots? Dude, the name alone is worth a try. Hoping for some lucky spins over there! I’m ready at win777slots.
78winvn – the VN makes me wonder if it’s popular in Vietnam. But hey, wins are wins! Is it worth my time to check out from the states? Tell me your experiences!. 78winvn
Clubgameb66club? Sounds kinda sus, but not bad so far, a random internet friend gave it to me. If you are looking for a new place to burn some time, maybe it is you? Give it a try with this link: clubgameb66club
Alright, so I stumbled upon five888! Heard from someone in reddit. It’s got a decent selection of games. Not the flashiest site ever! Give it a shot: five888
Just stumbled across kl88. Seems alright, nothing too crazy. I tried it and it’s okay. kl88