Результаты олимпиады
Во время проведения олимпиады каждый из участников получил свой идентификационный номер — натуральное число. Необходимо отсортировать список участников олимпиады по количеству набранных ими от больших к меньшим, а при равенстве — по возрастанию идентификационных номеров. Встроенные алгоритмы сортировки не использовать.
Входные данные
На первой строке дано число
N(1≤N≤1000)
N(1≤N≤1000)
— количество участников. На каждой следующей строке даны идентификационный номер и набранное число соответствующего участника. Все числа во входном файле не превышают
10
5
105
.
Выходные данные
В выходной файл выведите исходный список в порядке убывания . Если у некоторых участников одинаковые , то их между собой нужно выводить в порядке возрастания дам максимум
n=int(input())
from array import*
a=[]
b=[]
c= True
for i in range(n):
n,k=map(int,input().split())
a.append(n)
b.append(k)
for i in range(len(b) - 1):
imin = i
for j in range(i + 1, len(b)):
if b[j] < b[imin]:
imin = j
b[i], b[imin] = b[imin], b[i]
a[i], a[imin] = a[imin], a[i]
for i in range( 1,len(b)):
if b[i]==b[i-1]:
if a[i]>a[i-1]:
b[i],b[i-1]=b[i-1],b[i]
a[i], a[i-1] = a[i-1], a[i]
a.reverse()
b.reverse()
for i in range(len(a)):
print(a[i],b[i])
Объяснение:
вроде работает
python