 Participate in Codex, Test Your Skills & Win BIG # MAXSPPROD

Problem Description

You are given an array A containing N integers. The special product of each ith integer in this array is defined as the product of the following:

1. LeftSpecialValue: For an index i, it is defined as the index j such that A[j]>A[i] and (i>j). If multiple A[j]'s are present in multiple positions, the LeftSpecialValue is the maximum value of j.
2. RightSpecialValue: For an index i, it is defined as the index j such that A[j]>A[i] and (j>i). If multiple A[j]'s are present in multiple positions, the RightSpecialValue is the minimum value of j.

Write a program to find the maximum special product of any integer in the array.

NOTE: As the answer can be large, output your answer modulo 109 + 7.

Problem Constraints

1 <= N <= 105
1 <= A[i] <= 109

Input Format

First and only argument is an integer array A.

Output Format

Return an integer denoting the maximum special product of any integer.

Example Input

Input 1:

` A = [1, 4, 3, 4]`

Input 2:

` A = [10, 7, 100]`

Example Output

Output 1:

` 3`

Output 2:

` 0`

Example Explanation

Explanation 1:

``` For A = 3, LeftSpecialValue is 1 and RightSpecialValue is 3.
So, the ans is 1*3 = 3.
```

Explanation 2:

` There is not any integer having maximum special product > 0. So, the ans is 0.`

NOTE: You only need to implement the given function. Do not read input, instead use the arguments to the function. Do not print the output, instead return values as specified. Still have a doubt? Checkout Sample Codes for more details. Hints
• Hint 1
• Solution Approach
• Complete Solution

Loading...