2 дня тупил, потом сделал сначала перемудрив вот так:
n = int(input())
a = str(input()).split(' ')
def comparator(a1, b1):
if a1[4] > b1[4] or (a1[4] == b1[4] and a1[3] > b1[3]) or (
a1[4] == b1[4] and a1[3] == b1[3] and a1[2] > b1[2]) or (
a1[4] == b1[4] and a1[3] == b1[3] and a1[2] == b1[2] and a1[1] > b1[1]) or (
a1[4] == b1[4] and a1[3] == b1[3] and a1[2] == b1[2] and a1[1] == b1[1] and a1[0] > b1[0]):
return True
return False
for p1 in range(n - 1):
for p2 in range(p1 + 1, n):
if comparator((5-len(a[p1]))*'0'+a[p1], (5-len(a[p2]))*'0'+a[p2]):
a[p1], a[p2] = a[p2], a[p1]
for i in a:
print(i, end=' ')
а потом подумав и поняв что строки сравниваются именно так, как того требует задача - исправился на простое решение:
n = int(input())
a = str(input()).split(' ')
for p1 in range(n - 1):
for p2 in range(p1 + 1, n):
if a[p1][::-1] > a[p2][::-1]:
a[p1], a[p2] = a[p2], a[p1]
for i in a:
print(i, end=' ')
ПРОФИТ
N Результат Время (с) Баллы
1 OK 0.037 1 (1)
2 OK 0.037 1 (1)
3 OK 0.037 1 (1)
4 OK 0.037 1 (1)
5 OK 0.042 1 (1)
6 OK 0.470 1 (1)