2
public int sumSubarrayMins(int[] arr) {7
for (int i = 0; i < n; i++) {9
(sum + (long) (arr[i] * (long) (ans1[i] * ans2[i]) % 1000000007) % 1000000007)15
public static int[] nsl(int arr[]) {16
Stack<Integer> s = new Stack<>();17
int ans[] = new int[arr.length];18
for (int i = 0; i < arr.length; i++) {19
while (!s.isEmpty() && arr[i] < arr[s.peek()]) {26
ans[i] = i - s.peek();33
public static int[] nsr(int arr[]) {34
Stack<Integer> s = new Stack<>();35
int ans[] = new int[arr.length];36
for (int i = arr.length - 1; i >= 0; i--) {37
while (!s.isEmpty() && arr[s.peek()] >= arr[i]) {41
ans[i] = arr.length - i;44
ans[i] = s.peek() - i;