///Kiana Kaslana #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define execute cerr << "Time elapsed: " << (1.0 * clock() / CLOCKS_PER_SEC) << "s" #define fi first #define se second #define el cout <<"\n" #define pushb push_back #define pushf push_front #define popf pop_front #define popb pop_back #define MASK(x) (1 << (x)) #define BIT(x, i) ((x) >> (i) & 1) #define io ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define Shu "ChinaDog" /// #define IloveShu signed main() #define ShiraishiAn while(inp()) #define YoisakiKanade while(KiritaniHaruka--) #define ever ;; using namespace std; typedef long long ll; typedef double db; typedef vector vi; typedef pair pii; typedef vector> vvi; typedef vector vpii; typedef vector vll; typedef pair pll; typedef vector> vvll; typedef vector vpll; typedef unsigned long long ull; const int W = 1e3 + 7; const int N = 1e6 + 7; const int S = 1e2 + 7; const int midd = 1e5; const int base = 311; const int LG = 21; const int mod = 1e9 + 7; const int prime_mod = 998244353; const int ascii = 127; const int alphabet = 26; const int INF = 2147483647; const long long INFLL = 4340410370284600380; template bool maximize(T &res, const T &val) { if (res < val){ res = val; return 1; }; return 0; } template bool minimize(T &res, const T &val) { if (res > val){ res = val; return 1; }; return 0; } mt19937 rd(time(0)); ll rng(ll l , ll r) { assert(l <= r); uniform_int_distribution d(l , r); return d(rd); } ///MAIN PROGRAMME int KiritaniHaruka = 1; int n; int a[N] , pos[N]; void solve() { ll res = 0; int L = pos[0] , R = pos[0]; for (int x = 1 ; x < n ; ++x) { int p = pos[x]; ll cnt = 0; if (p < L) { cnt = 1LL * (L - p) * (n - R); } else if (p > R) { cnt = 1LL * (L + 1) * (p - R); } else { cnt = 0; } res += 1LL * x * cnt; L = min(L , p); R = max(R , p); } res += n; cout << res; } void inp() { cin >> n; for (int i = 0 ; i < n ; ++i) { cin >> a[i]; pos[a[i]] = i; } } void file() { if (fopen(Shu".inp" , "r")) { freopen(Shu".inp" , "r" , stdin); freopen(Shu".out" , "w" , stdout); } } IloveShu { io; file(); //cin >> KiritaniHaruka; YoisakiKanade { inp(); solve(); } // ShiraishiAn // { // solve(); // } }