Dato un max-heap con n numeri, tutti gli elementi rispettano la proprietà di max-heap tranne la radice. È richiesto di sistemare l'heap in modo che tutti i numeri al suo interno soddisfino effettivamente la proprietà di max-heap.
Ingresso
La prima riga dell'input contiene un singolo intero n (1 ≤ n ≤ 100 000).
La riga successiva contiene n numeri interi separati da spazio, a_1, a_2, ..., a_n, che rappresentano i valori degli elementi nell'heap.
Uscita
Il programma deve stampare n interi separati da spazio che rappresentano l’heap corretto.
Esempi
Ingresso
Uscita
7
-1 9 7 1 3 6 5
9 5 7 1 -1 6 3
8
-2 7 5 2 1 3 4 1
7 2 5 1 1 3 4 -2
Spiegazione
Esempio 1 illustrato. Il grafico a sinistra mostra l’heap iniziale. Quello a destra mostra l’heap corretto.
Esempio 2 illustrato. Il grafico a sinistra mostra l’heap prima della correzione. Quello a destra mostra l’heap corretto.