Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 1 / 0
Регистрация: 24.04.2024
Сообщений: 10

Серия пенальти

24.04.2024, 23:38. Показов 1659. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Решите пожалуйста задачу, вообще нет вариантов.
Серия пенальти в футболе проводится по следующим правилам:

две команды наносят удары по очереди; команда, наносящая удар, может либо забить гол, либо не забить
побеждает команда, которая забьет больше голов
изначально командам нужно нанести по 5 ударов, однако, если после очередного удара победитель определиться однозначно, новые удары наноситься не будут. Например, если первая команда нанесла 5 ударов и забила 3 гола, а вторая команда нанесла 4 удара и забила 1 гол, то ей не имеет смысла наносить пятый удар — она все равно проиграет
если после 5 ударов каждой из команд счет равный (то есть команды забили одинаковое количество голов), то команды будут продолжать наносить удары по очереди, пока не определится победитель — то есть при равном количестве ударов будет разное количество забитых голов
Вася смотрит серию пенальти, но уже хочет спать. Он хочет знать, какое минимальное количество ударов будет нанесено в серии. Зная результаты всех предыдущих ударов, помогите Васе найти это число.

Входные данные
Входные данные содержат 2 непустые строки. Первая строка описывает удары первой команды, вторая — второй. Каждая строка состоит из символов 'O' (заглавная латинская буква) — гол и 'X' — удар, не приведший к голу.

Длины строк не превосходят 10. Команды наносили удары по очереди, поэтому либо длины строк равны, либо первая строка содержит на один символ больше.

Гарантируется, что описанное состояние корректно. То есть победитель еще не определен и удары наносились в соответствии с правилами, указанными в условии.

Выходные данные
Вывести одно число — минимальное количество ударов, которое еще будет нанесено в этой серии пенальти.


Примеры
входные данные
OXO
OO
выходные данные
3
входные данные
OOOXOO
XOOOOO
выходные данные
2
Примечание
В первом примере потребуется минимум 3 удара. Например, если вторая команда забьет оба своих следующих удара, а первая команда — не забьет следующий удар, то вторая команда победит со счетом 4−2
. В этом случае больше ударов не потребуется.

Во втором примере каждая команда должна сделать еще минимум по одному удару, чтобы определить победителя.

Добавлено через 41 секунду
Решение пожалуйста на Python!!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2024, 23:38
Ответы с готовыми решениями:

Макс учил детей бить пенальти
Макс учил детей бить пенальти и в столбик записывал результаты: имя и количество забитых мячей через пробел. Например, так: Петя шесть...

Игра, Серия увеличения опыта, GameDev
В игру добавят новое очень хитрое достижение, отслеживающее самую длинную серию увеличения опыта, заработанного в боях. Чтобы продолжить...

Серия в массиве
помогите пожалуйста написать прогу:lдан массив чисел и после каждой серии в массиве необходимо вставить нулевой элемент

1
3750 / 1944 / 612
Регистрация: 21.11.2021
Сообщений: 3,706
25.04.2024, 16:42
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def winners_advantage(res_, win_ind_):
    return res_[win_ind_].count('O') - res_[not win_ind_].count('O')
 
def early_win(res_, win_ind_):
    not_win_len = len(res_[not win_ind_])
    return not_win_len < 5 and 5 - not_win_len < winners_advantage(res_, win_ind_)
 
def is_win(res_, win_ind_):
    return (early_win(res_, win_ind_)
        or len(res_[0]) == len(res_[1]) and len(res_[0]) >= 5 and winners_advantage(res_, win_ind_) > 0)
 
res = [input('Удары первой команды->'), input('Удары второй команды->')]
 
# Если какая-то команда выигрывает, то играем за нее.
# Если счет равный, то играем за вторую команду, так как у нее ударов может быть больше.
win_ind = 1 if winners_advantage(res,1) >= 0 else 0
cur_ind = len(res[0]) > len(res[1])
counter = 0
while not is_win(res, win_ind):
    res[cur_ind] += 'XO'[cur_ind == win_ind]
    cur_ind = not cur_ind
    counter += 1
print(counter)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.04.2024, 16:42
Помогаю со студенческими работами здесь

Обратный отсчёт: серия пусков
Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt ...

Номер ряда в котором присутствует самая длинная серия одинаковых элементов
Дана целочисленная прямоугольная матрица. Опеределить: 1) количество СТОЛБЦОВ, которые имеют хотябы один нулевой елемент; 2) номер ряда...

Определить номер строки матрицы, в которой находится самая длинная серия одинаковых элементов.
Дана целочисленная прямоугольная матрица. Определить: 1. Количество столбцов, содержащих хотя бы один нулевой элемент. 2. Номер...

Найти номер строки заданной целочисленной матрицы, в которой находится самая длинная серия
Задача такая: Найти номер строки заданной целочисленной матрицей размером n на m, в которой находится самая длинная серия. Серия -...

Серия - группа подряд одинаковых элементов, а длина серии - количество этих элементов
В массиве назовем серией группу подряд одинаковых элементов, а длиной серии - количество этих элементов. Сформировать два новых массива, в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru