Табло на тренировке по настольному теннису
Условие
На школьной тренировке по настольному теннису играют один гейм: игрок A против игрока B.
Секретарь записал результаты розыгрышей подряд. Каждый розыгрыш выигрывает либо A, либо B.
Правила окончания гейма такие:
- обычно гейм заканчивается, когда кто-то набрал 11 очков и ведёт хотя бы в 2 очка;
- если счёт стал 10:10, то игра продолжается, пока кто-то не начнёт вести в 2 очка (например, 12:10, 15:13 и т.п.).
Запись может быть длиннее, чем нужно: после окончания гейма лишние символы в записи игнорируются.
Нужно понять, закончился ли гейм в пределах записи, и если да — на каком розыгрыше.
Формат ввода
- В первой строке целое число
n— длина записи (2 ≤ n ≤ 8000). - Во второй строке строка
sдлиныn, состоящая только из символовAиB.
Формат вывода
- Если гейм закончился на розыгрыше
k(нумерация с 1), выведите в одной строке:
W a b k, где W — победитель (A или B), a — очки A, b — очки B в момент окончания гейма.
- Если за
nрозыгрышей гейм не закончился, выведите:
INCOMPLETE a b, где a и b — текущие очки после всех n розыгрышей.
Ограничения
2 ≤ n ≤ 8000.s[i] ∈ { 'A', 'B' }.
Пример Ввод:
18
ABABABAAABAAABABBA
Вывод:
A 11 7 18Разберись руками
Есть запись из 18 розыгрышей: каждый символ — кто взял очко. Твоя цель на этом примере — руками понять, закончился ли гейм и на каком розыгрыше, а если закончился — какой счёт был в этот момент.
- Отметь в строке все позиции (индексы с 0), где стоит буква 'A'. Потом по количеству отмеченных позиций будет видно, сколько очков набрал A за всю запись.
- Сколько очков у A после всех 18 розыгрышей?
- Сколько очков у B после всех 18 розыгрышей?
- Выбери, что верно для этой записи: что нужно вывести?
Идея: Идём по записи слева направо и ведём счёт очков A и B. После каждого розыгрыша проверяем: кто-то уже набрал нужное количество очков и есть ли преимущество минимум в 2; если да — фиксируем победителя, счёт и номер розыгрыша, а остальные символы больше не важны.
Решить задачу с автопроверкой на Python →
Куда дальше
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Python на олимпиадах — где языка хватает с запасом, а где начинают значить лимиты — с замерами