/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static int N;
public static int[] leftSmaller(int[] arr) {
int n = arr.length;
int[] left = new int[n];
Stack<Integer> st = new Stack<>();
for (int i = 0; i < n; i++) {
while (!st.isEmpty() && arr[st.peek()] >= arr[i]) {
st.pop();
}
left[i] = st.isEmpty() ? -1 : st.peek();
st.push(i);
}
return left;
}
public static int[] rightSmaller(int[] arr) {
int n = arr.length;
int[] right = new int[n];
Stack<Integer> st = new Stack<>();
for (int i = n - 1; i >= 0; i--) {
while (!st.isEmpty() && arr[st.peek()] > arr[i]) {
st.pop();
}
right[i] = st.isEmpty() ? N : st.peek();
st.push(i);
}
return right;
}
{
// your code goes here
int[] arr = {2, 4, 5, 3, 2, 1, 6, 3, 1};
N = arr.length;
int[] contribution = new int[N];
int[] left_smaller = leftSmaller(arr);
int[] right_smaller = rightSmaller(arr);
long ans = 0;
for(int i = 0; i < N; i++){
int i1 = left_smaller[i];
int j1 = right_smaller[i];
i1++;
j1--;
contribution[i] = (x+1)*(y+1);
ans += 1L* contribution[i] * arr[i];
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQoJcHVibGljIHN0YXRpYyBpbnQgTjsKCXB1YmxpYyBzdGF0aWMgaW50W10gbGVmdFNtYWxsZXIoaW50W10gYXJyKSB7CiAgICAgICAgaW50IG4gPSBhcnIubGVuZ3RoOwogICAgICAgIGludFtdIGxlZnQgPSBuZXcgaW50W25dOwogICAgICAgIFN0YWNrPEludGVnZXI+IHN0ID0gbmV3IFN0YWNrPD4oKTsKCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCiAgICAgICAgICAgIHdoaWxlICghc3QuaXNFbXB0eSgpICYmIGFycltzdC5wZWVrKCldID49IGFycltpXSkgewogICAgICAgICAgICAgICAgc3QucG9wKCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGxlZnRbaV0gPSBzdC5pc0VtcHR5KCkgPyAtMSA6IHN0LnBlZWsoKTsKCiAgICAgICAgICAgIHN0LnB1c2goaSk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gbGVmdDsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIGludFtdIHJpZ2h0U21hbGxlcihpbnRbXSBhcnIpIHsKICAgICAgICBpbnQgbiA9IGFyci5sZW5ndGg7CiAgICAgICAgaW50W10gcmlnaHQgPSBuZXcgaW50W25dOwogICAgICAgIFN0YWNrPEludGVnZXI+IHN0ID0gbmV3IFN0YWNrPD4oKTsKCiAgICAgICAgZm9yIChpbnQgaSA9IG4gLSAxOyBpID49IDA7IGktLSkgewoKICAgICAgICAgICAgd2hpbGUgKCFzdC5pc0VtcHR5KCkgJiYgYXJyW3N0LnBlZWsoKV0gPiBhcnJbaV0pIHsKICAgICAgICAgICAgICAgIHN0LnBvcCgpOwogICAgICAgICAgICB9CgogICAgICAgICAgICByaWdodFtpXSA9IHN0LmlzRW1wdHkoKSA/IE4gOiBzdC5wZWVrKCk7CgogICAgICAgICAgICBzdC5wdXNoKGkpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJpZ2h0OwogICAgfQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCWludFtdIGFyciA9IHsyLCA0LCA1LCAzLCAyLCAxLCA2LCAzLCAxfTsKCQlOID0gYXJyLmxlbmd0aDsKCQlpbnRbXSBjb250cmlidXRpb24gPSBuZXcgaW50W05dOwoJCQoJCWludFtdIGxlZnRfc21hbGxlciA9IGxlZnRTbWFsbGVyKGFycik7CgkJaW50W10gcmlnaHRfc21hbGxlciA9IHJpZ2h0U21hbGxlcihhcnIpOwoJCQoJCWxvbmcgYW5zID0gMDsKCQkKCQlmb3IoaW50IGkgPSAwOyBpIDwgTjsgaSsrKXsKCQkJaW50IGkxID0gbGVmdF9zbWFsbGVyW2ldOwoJCQlpbnQgajEgPSByaWdodF9zbWFsbGVyW2ldOwoJCQlpMSsrOwoJCQlqMS0tOwoJCQkKCQkJaW50IHggPSBNYXRoLmFicyhpLWkxKTsKCQkJaW50IHkgPSBNYXRoLmFicyhpLWoxKTsKCQkJCgkJCWNvbnRyaWJ1dGlvbltpXSA9ICh4KzEpKih5KzEpOwoJCQkKCQkJYW5zICs9IDFMKiBjb250cmlidXRpb25baV0gKiBhcnJbaV07CgkJCQoJCX0KCQlTeXN0ZW0ub3V0LnByaW50KGFucyk7Cgl9Cn0=