Яндекс.Контест - Wrong-Answer на последнем тесте

Всем привет! Мне нужно решить это задание на Яндекс.Контесте. Написал код, который решает это задание. Однако он все равно не проходит последний тест. Все предыдущие тесты программа прошла отлично. В чем причина того, что последний тест программа не проходит?

Код моего решения на Python задачи такой такой:

def setIntWithProverka(e, userInput):
    if 1 <= int(e) and int(e) <= 10**9:
        return int(e)
    else:
        if userInput:
            print(-1)
        else:
            open("output.txt", "w").write(str(-1))
        quit()

userInput = True
try:
    N = int(input())
    V = list(map(lambda e, userInput=userInput: setIntWithProverka(e, userInput), input().split(" ")))
except ValueError:
    userInput = False
    f = open("input.txt")
    content = f.readlines()
    N = int(content[0])
    V = list(map(lambda e, userInput=userInput: setIntWithProverka(e, userInput), content[1].split(" ")))
    f.close()

if not (len(V) == N or not (1 <= N and N <= 100000)):
    if userInput:
        print(-1)
    else:
        open("output.txt", "w").write(str(-1))
    quit()

mx_v = max(V)
k = 0
counter = 0
while len(set(V)) != 1:
    for i in range(len(V)):
        if V[i] != mx_v:
            k += 1

    for k_value in range(k):
        V[k_value] += 1
    counter += 1

    k = 0

    if counter >= 1000:
        if userInput:
            print(-1)
        else:
            open("output.txt", "w").write(str(-1))
        quit()


if userInput:
        print(counter)
else:
    open("output.txt", "w").write(str(counter))

Ответы (1 шт):

Автор решения: MBo

Идём в цикле по элементам.
Если значение изменилось вниз - аллес капут.
Если значение изменилось вверх на d, добавляем к счётчику операций d

cnt = 0
for i in range(1, len(V)):
    d = V[i] - V[i-1]
    if d < 0:
       cnt = -1
       break
    elif d > 0:
       cnt += d 

Однако можно заметить, что сумма положительных разностей массива, сортированного по неубыванию - это просто разница последнего и первого элемента, так что можно просто проверить упорядоченность и взять эту самую разницу

cnt = V[-1]-V[0]    
for i in range(1, len(V)):
    if V[i] < V[i-1]:
       cnt = -1
       break 
print(cnt)
→ Ссылка