Вступление
Вы играете в игру на совпадение, в которой монеты вставляются сверху и падают вниз (на верхнюю монету) под действием силы тяжести.
Так это
O <- inserting this coin
OO O
OOOOO
станет этим
O
OO O
OOOOO
Теперь представьте, что кто-то вращает доску по часовой стрелке. Произойдет следующее:
1. Доска вращается
OOO
OO
O
OO
O
2. Монеты падают под действием силы тяжести
O
O
OO
OO
OOO
Твое задание
Ваша задача - смоделировать вращение доски, написав программу или функцию. Для простоты мы имеем дело только с одним видом монет (это не слишком захватывающая игра на совпадение, правда ...). Вы можете предположить, что гравитация применяется только после завершения вращения. Доска вращается по часовой стрелке.
вход
На входе будет строка, которая содержит 3 типа символов:
- O (заглавная o) ИЛИ 0 (ноль) - монета (вы сами решаете, какую из них поддерживает ваше решение)
- (пробел) - пустое поле
- \ n (новая строка) - конец строки
Вход представляет состояние платы. Можно предположить, что вход правильно сформирован и содержит действительное состояние доски (монеты не плавают). Ввод может быть параметром функции или может быть прочитан из стандартного ввода или из файла.
Выход
На выходе появляется новое состояние платы после вращения. Вывод содержит те же 3 типа символов, что и ввод. Вывод может быть возвращен из вашей функции или может быть записан в стандартный вывод или в файл.
Образец
Input1:
O
OO O
OOOOO
Output1:
O
O
OO
OO
OOO
Input2:
O O
O O
Выход2:
OO
OO
Вы можете использовать любой язык и стандартную библиотеку выбранного языка. Самая короткая программа в байтах побеждает.