В линию расположено \(n\) слизней. Слизни нумеруются от \(1\) до \(n\) слева направо. Размер \(i\)-го слизня равен \(a_i\).
Каждую секунду происходит следующее: ровно один слизень съедает одного из своих соседей и увеличивает свой размер на значение размера соседа. Слизень может съесть своего соседа, только если он строго больше этого соседа. Если нет такого слизня, который больше хотя бы одного из его соседей — процесс завершается.
Например, предположим, что \(n = 5\), \(a = [2, 2, 3, 1, 4]\). Процесс может пройти следующим образом:
- сначала \(3\)-й слизень съедает \(2\)-го. Размер \(3\)-го слизня становится равным \(5\), \(2\)-й слизень съеден.
- затем \(3\)-й слизень съедает \(1\)-го (они соседи, так как \(2\)-й уже съеден). Размер \(3\)-го слизня становится равным \(7\), \(1\)-й слизень съеден.
- затем \(5\)-й слизень съедает \(4\)-го. Размер \(5\)-го слизня становится равным \(5\), \(4\)-й слизень съеден.
- затем \(3\)-й слизень съедает \(5\)-го (они соседи, так как \(4\)-й уже съеден). Размер \(3\)-го слизня становится равным \(12\), \(5\)-й слизень съеден.
Для каждого слизня вычислите минимальное количество секунд, за которое он может оказаться съеден каким-то другим слизнем (среди всех возможных вариантов, как может происходить процесс), или сообщите, что это невозможно.
Выходные данные
Для каждого набора входных данных выведите \(n\) целых чисел, где \(i\)-е число должно быть равно минимальному количеству секунд, необходимому для того, чтобы \(i\)-й слизень был съеден другим слизнем, или -1, если это невозможно.