Ну так у вас логические ошибки. seq пустой, а вы делаете из него top - пытаетесь взять верхний элемент. По документации к функции - это приводит к неопределенному поведению.
n = w = int(input())
pp = list(map(int, input().split()))
s = sum(pp)
for i in sorted(range(n), key=pp.__getitem__):
p = pp[i]
pp[i] = s - w * p
w -= 2
s -= p * 2
print(*[i + 1 for i in sorted(range(n), key=pp.__getitem__)])