В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
DFleX
DFleX
15.03.2021 02:47 •  Информатика

Результаты олимпиады
Во время проведения олимпиады каждый из участников получил свой идентификационный номер — натуральное число. Необходимо отсортировать список участников олимпиады по количеству набранных ими от больших к меньшим, а при равенстве — по возрастанию идентификационных номеров. Встроенные алгоритмы сортировки не использовать.
Входные данные
На первой строке дано число
N(1≤N≤1000)
N(1≤N≤1000)
— количество участников. На каждой следующей строке даны идентификационный номер и набранное число соответствующего участника. Все числа во входном файле не превышают
10
5
105
.
Выходные данные
В выходной файл выведите исходный список в порядке убывания . Если у некоторых участников одинаковые , то их между собой нужно выводить в порядке возрастания дам максимум

Показать ответ
Ответ:
arisha72
arisha72
31.05.2020 00:07

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

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота