You are given an array A of N integers. Now, two functions \(F(X)\) and \(G(X)\) are defined:
\( F(X) \) : This is the smallest number Z such that \( X < Z \le N \) and \(A[X] < A[Z] \)
\( G(X) \) : This is the smallest number Z such that \( X < Z \le N \) and \(A[X] > A[Z] \)
Now, you need to find for each index i of this array \(G(F(i))\), where \( 1 \le i \le N \) . If such a number does not exist, for a particular index i, output 1 as its answer. If such a number does exist, output \(A[G(F(i))]\)
Input :
The first line contains a single integer N denoting the size of array A. Each of the next N lines contains a single integer, where the integer on the \(i^{th}\) line denotes \(A[i]\).
Output :
Print N space separated integers on a single line, where the \(i^{th}\) integer denotes \(A[G(F(i))]\) or 1, if \(G(F(i))\) does not exist.
Constraints:
\(1 \le N \le 30000 \)
\( 0 \le A[i] \le 10^{18} \)
Next Greater Next Smaller
3 --> 7 7 -->1
7 --> 8 8 -->4
1 --> 7 7 --> 4
7 --> 8 8 --> 4
8 --> -1 -1 --> -1
4 --> 5 5 --> 2
5 --> -1 -1 --> -1
2 --> -1 -1 --> -1
Please login to use the editor
You need to be logged in to access the code editor
Loading...
Please wait while we load the editor
Login to unlock the editorial
Please login to use the editor
You need to be logged in to access the code editor
Loading...
Please wait while we load the editor