Encontrar el elemento más pequeño siguiente más grande

Tengo una tarea que requiere que encuentre el más pequeño de todos los elementos más grandes en una matriz para todas las entradas de la matriz y almacene los índices respectivos en una matriz y no puedo entender la última parte de la solución.

Esto es similar al problema explicado aquí:https: //www.geeksforgeeks.org/smallest-greater-elements-in-whole-array

La única diferencia es que solo se tienen en cuenta los valores a la derecha de la entrada de la matriz (j> i), por ejemplo

input:  [80; 19; 49; 45; 65; 71; 76; 28; 68; 66]  
output: [-1;  7;  4;  4;  9;  6; -1;  9; -1; -1]

La solución con un árbol de equilibrio automático tiene sentido para mí. Sin embargo, todavía necesito tener en cuenta la indexación porque solo las soluciones a la derecha de la entrada de matriz son válidas.

¿Hay alguna forma de asignar la indexación de los valores insertados a las entradas del árbol o de crear un segundo árbol con una estructura idéntica pero el índice de las entradas de la matriz anterior en lugar de los valores reales como nodos? No estoy seguro porque la estructura del árbol de equilibrio automático, por supuesto, depende de los valores insertados (valores más grandes en el subárbol derecho, valores más pequeños en el subárbol izquierdo).

EDIT: en realidad, un segundo árbol AVL probablemente no ayudará, ya que tengo que comprobar que la indexación es más grande Y la entrada de la matriz es más grande al atravesar el árbol ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta