Given an array of positive integers, print the next greater element for every element in the Array.
The next greater element for a given element X is the first greater element on the right side of X in the Array. If the element X does not have a greater element, print -1 for X.

Input Format:
The first line contains N, which denotes the number of elements in the Array.
The second line contains N positive integers, each separated by a space.

Output Format:
The first line contains the N integers which represent the next greater elements, each separated by a space.

Boundary Conditions:
1 <= N <= 10000

Example Input/Output 1:
Input:
4
4 5 2 25

Output:
5 25 25 -1

Example Input/Output 2:
Input:
5
10 9 8 7 6

Output:
-1 -1 -1 -1 -1

def printNGE(arr, n): 
    s = list() 
    arr1 = [0 for i in range(n)] 
    for i in range(n - 1, -1, -1):  
        while (len(s) > 0 and s[-1] <= arr[i]): 
            s.pop() 
        if (len(s) == 0): 
            arr1[i] = -1        
        else: 
            arr1[i] = s[-1]      
  
        s.append(arr[i]) 
    for i in range(n): 
        print(arr1[i],end=" ") 
m=int(input())
arr = list(map(int,input().split())) 
n = len(arr) 
printNGE(arr, n) 
Amazing!
3
Love
0
Very helpful
0
Claps!
0

You may also like

More in:Python