Вы будете удивлены, но в мире существуют турниры по игре «Четыре в ряд». Её правила довольно просты: в неё играют два игрока на поле размером 7 × 9 с 7 строками и 9 столбцами, которое стоит на столе вертикально. Игроки по очереди кидают фишки своего цвета в один из девяти столбцов, эта фишка падает на самую низкую незанятую позицию в столбце. Когда в столбце будут находиться все семь фишек, в этот столбец нельзя больше ничего закинуть, но можно пропустить ход, условно делая ход в этот столбец, на что тратится одна фишка. Игра заканчивается в тот момент, когда после хода одного из игроков найдутся четыре позиции в одном столбце, в одной строке или по диагонали подряд с фишками одинакового цвета, тогда игрок, который ходил последним, является победителем. Если же все 63 фишки оказались потраченными, однако не один из игроков не победил, то результатом этой игры становится либо ничья, если заполнено всё поле, либо открытый конец, если остались свободные поля.
Профессионалы игры «Четыре в ряд» играют очень быстро, а чтобы провести необходимый анализ игры после, на каждом матче присутствует писарь, который записывает каждый ход игроков. Понятно, что в любой момент игры возможно сделать не больше девяти возможных ходов, каждый из которых в записи обозначается номером столбца, куда была кинута фишка или где был пропущен ход. А для удобства писари пишут все ходы игроков в одну строку.
В финале чемпионата мира играют два величайших игрока поколения — Парвиз и Воропше. Начинающий букмекер Вадим принимает ставки только на победу одного из двух игроков, при победе Парвиза, который будет начинать, он отдаст все деньги в пропорциональном отношении тем, кто поставил на него, при победе Воропше — тем, кто поставил на него, а при ничьей весь банк остаётся у букмекера. Профессиональная игра не может закончиться открытым концом, так как при этом оба игрока дисквалифицируются.
К сожалению, Вадим проспал этот матч, а деньги нужно возвращать. Или не нужно? Вадим нашёл запись матча писарем, но она оказалась очень странной. Каким-то образом писарь записал в одну строку как все матчи и разминки, которые проводились в этот день, так и просто случайные ходы заскучавших игроков. Чтобы правильно распорядиться деньгами, Вадиму нужно срочно определить, сколько подстрок этой строки являются записями победы одного из игроков, и сколько являются записями ничьих. Его не интересует, кто победил при этом в матче, потому что при победе все деньги уйдут изначальным бетторам, а при ничьей Вадим хорошо заработает. Также ему не интересны игры с открытыми концами, потому что их не могло произойти в этом матче. Помогите Вадиму, и, быть может, он поделится с Вами кусочком пирога. Или торта.
Исходные данные
В единственной строке даётся строка длины N из цифр от «1» до «9» без пробелов — запись всех ходов писарем (1 ≤ N ≤ 104).
Результат
Выведите два целых числа через пробел — количество подстрок данной записи, являющихся победой одного из игроков, и количество подстрок данной записи, являющихся ничьёй.
Пример
исходные данные | результат |
---|
34353637
| 2 0
|
Замечания
В игре «3435363» побеждает первый игрок, выстроив 4 фишки подряд в третьем столбце; в игре «4353637» также побеждает первый игрок, выстроив 4 фишки подряд в нижней строке; никакая другая подстрока не является законченной игрой.
Автор задачи: Вадим Баринов
Источник задачи: Уральская командная олимпиада по программированию 2021