Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
207 / 5 / 2
Регистрация: 27.04.2024
Сообщений: 72

Соревнования по гимнастике

03.05.2024, 15:11. Показов 1072. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Во время уборки дома Антон нашел результаты соревнований по гимнастике, в которых он когда-то участвовал. К сожалению, имена участников соревнований не сохранились, и у Антона остался только список очков, набранных участниками и расположенных в порядке их выступления.

Антон забыл, сколько очков набрал он сам, но он точно помнит, что количество его очков заканчивалось на 5. Также он помнит, что один из победителей соревнования выступал раньше него, а друг Антона, выступавший сразу после самого Антона, набрал меньше очков. Антону интересно, какое самое высокое место он мог занять на этих соревнованиях с учетом данных условий.

Будем считать, что участник занял k-е место, если ровно k−1 человек набрал строго больше очков. Победителями считались все участники соревнования, занявшие первое место.

Формат входных данных
В первой строке вводится натуральное число n (3≤n≤10^5) – количество участников соревнования. В следующей строке вводятся n чисел a1,a2,...,an (ai≤1000) – очки участников в порядке выступления.

Формат результата
Требуется вывести одно число – самое высокое место, которое мог занять Антон. Если не существует ни одного участника соревнований, который удовлетворяет условиям, требуется вывести 0.

Примеры
Входные данные
5
625 933 175 17 241
Результат работы
4
Входные данные
3
10 15 20
Результат работы
0

Тема Линейный поиск

Моя Программа выводит верный ответ только при входных данных как в примере
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
n = int(input())
scores = list(map(int, input().split()))
 
anton_index = None
 
for i in range(n):
    if scores[i] % 10 == 5:
        anton_index = i
        break
 
if anton_index is not None:
    anton_score = scores[anton_index]
    higher_scores = sum(score > anton_score for score in scores)
 
    if (anton_index == 0 or scores[anton_index - 1] > anton_score) and (anton_index == n - 1 or scores[anton_index + 1] >= anton_score):
        print(n - higher_scores)
    else:
        print(0)
else:
    print(0)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.05.2024, 15:11
Ответы с готовыми решениями:

Ведутся спортивные соревнования по художественной гимнастике
Ведутся спортивные соревнования по художественной гимнастике. Всего команд гимнастов – 5. Жюри состоит из 3 судей. Необходимо...

Составьте список группы из N спортсменов, принимавших участие в соревнованиях по спортивной гимнастике
Составьте список группы из N спортсменов, принимавших участие в соревнованиях по спортивной гимнастике. Для каждого гимнаста укажите...

Составьте список группы из N спортсменов, принимавших участие в соревнованиях по спортивной гимнастике
Составьте список группы из N спортсменов, принимавших участие в соревнованиях по спортивной гимнастике. Для каждого гимнаста укажите...

9
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
03.05.2024, 18:12
Информация к размышлению:
Входные данные
5
625 933 175 17 241
Python
1
2
3
print(anton_index)
 
# 0
0
207 / 5 / 2
Регистрация: 27.04.2024
Сообщений: 72
03.05.2024, 19:56  [ТС]
Red white socks, Благодарю за ответ, но не в этом дело.
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
03.05.2024, 20:17
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from collections import Counter
 
n = int(input('n = '))
points = []
*points, = map(int, input('->').split())
sorted_points = sorted(points, reverse=True)
place_of_p = Counter()
for i in range(n):
    p = sorted_points[i]
    if i==0 or sorted_points[i-1] > p:
        place_of_p[p] = i+1
    else:
        place_of_p[p] = place_of_p[sorted_points[i-1]]
win_p = sorted_points[0]
max_place = 0
for i in range(points.index(win_p)+1, n-1):
    cur_p = points[i]
    if cur_p % 10 == 5 and cur_p > points[i+1]:
        max_place = max(max_place, place_of_p[cur_p])
print(max_place)
1
207 / 5 / 2
Регистрация: 27.04.2024
Сообщений: 72
03.05.2024, 21:23  [ТС]
idealist, Благодарю вас за ответ, ваш код почти верен, он выводит ошибку в 12 тесте, а что за тест не знаю.

Добавлено через 29 минут
idealist, Я сейчас думал над вашим кодом, а может ли возникнуть ошибка при обращении к элементам списка points?
0
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
03.05.2024, 22:01
Цитата Сообщение от utsushi Посмотреть сообщение
а может ли возникнуть ошибка при обращении к элементам списка points?
А какая там может быть ошибка?
0
0 / 0 / 0
Регистрация: 28.03.2024
Сообщений: 68
03.05.2024, 22:06
idealist,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from collections import Counter
 
n = int(input('n = '))
points = list(map(int, input('-> ').split()))
 
sorted_points = sorted(points, reverse=True)
place_of_p = Counter()
 
for i in range(n):
    p = sorted_points[i]
    if i == 0 or sorted_points[i - 1] > p:
        place_of_p[p] = i + 1
    else:
        place_of_p[p] = place_of_p[sorted_points[i - 1]]
 
win_p = sorted_points[0]
max_place = 0
 
for i in range(points.index(win_p) + 1, n - 1): 
    cur_p = points[i]
    if cur_p % 10 == 5 and cur_p > points[i + 1]:  
        if cur_p in place_of_p:  
            max_place = max(max_place, place_of_p[cur_p])
 
print(max_place)
я вот так переделал, но всё равно не верно
0
Эксперт Python
 Аватар для Red white socks
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
04.05.2024, 01:58
Цитата Сообщение от utsushi Посмотреть сообщение
ed white socks, Благодарю за ответ, но не в этом дело.
Ну да, ну да, кривые руки тоже не при делах. Задача за 15 минут решается. Спасибо за обратную связь, я умолкаю в ваших темах.
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
04.05.2024, 09:48
Лучший ответ Сообщение было отмечено utsushi как решение

Решение

Решение без использования стандартного max. На информатиксе и на acmp задача называется несколько иначе.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
n = int(input())
x = [int(i) for i in input().split()]
# ищем индекс первого максимума (победителя, выступавшего раньше)
mi = 0
for i in range(1, n):
    if x[mi] < x[i]:
        mi = i
# ищем возможный результат Антона (с учетом того, что он точно не первый и не последний)
fi = 0
for i in range(mi+1, n-1):
    if fi < x[i] and x[i]%10 == 5 and x[i] > x[i+1]:
        fi = x[i]
if fi == 0: # не существует ни одного участника соревнований, который удовлетворяет условиям
    print(0)
else:
    # ищем, сколько участников набрало больше
    c = 0
    for i in range(n):
        if x[i] > fi:
            c += 1
    # место Антона
    print(c+1)
1
207 / 5 / 2
Регистрация: 27.04.2024
Сообщений: 72
04.05.2024, 09:58  [ТС]
thyrex, Благодарю за ответ, ваш код верен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.05.2024, 09:58
Помогаю со студенческими работами здесь

Соревнования
Переведите задачу на русский язык. Ограничение времени: 1 с Ограничение памяти: 64 M As you see, setting problems for a...

Задача с соревнования
Здравствуйте. Объясните, пожалуйста, что значит в условии ниже &quot;момент времени 0&quot; и в какой момент времени пингвины будут в одной...

Соревнования по робототехнике (С++)
Доброго времени суток! Пожалуйста, помогите решить задание. Нужно написать програмку на языке С++

Соревнования по лыжам
Привет всем. Сейчас я опубликую задачу. Прошу стразу не ругаться. Я сам понимаю, что задача простейшая. Вопрос возник в реализации ввода...

Соревнования по робототехнике
Доброго времени суток! :) Пожалуйста, помогите решить задание. Нужно написать програмку на языке Си.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru