**Problem Description**

You are given an array **A** containing **N** integers. The special product of each **i ^{th}** integer in this array is defined as the product of the following:

**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**.**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 10^{9} + 7.

1 <= N <= 10^{5}

1 <= A[i] <= 10^{9}

First and only argument is an integer array A.

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

Input 1:

A = [1, 4, 3, 4]

Input 2:

A = [10, 7, 100]

Output 1:

3

Output 2:

0

Explanation 1:

For A[2] = 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.

Sign Up

to access hints and editorial solutions for**MAXSPPROD**

to access hints and editorial solutions for

Loading...