Автор: | М. Спорышев | Ограничение времени: | 5 сек | |
Ввод / вывод: | интерактивный | Ограничение памяти: | 256 Мб |
Данная задача является интерактивной.
Задача состоит в прохождении игры 2048 с наилучшим результатом.
2048 играется на поле N × M клеток. Клетки, в которых записаны числа, сдвигаются по нажатию пользователем клавиш курсора.
После каждого хода в случайном пустом поле появляется число 2, либо 4. Клетки сдвигаются в заданном пользователем направлении, пока их не остановит либо другая непустая клетка, либо граница поля.
Если две клетки с одинаковыми числами сталкиваются друг с другом во время сдвига, они объединяются в одну клетку с числом равным их сумме.
Клетка не может быть объединена с другими более одного раза во время сдвига. Клетки сдвигаются и объединяются последовательно от первого к последнему в направлении движения.
На каждом шаге взаимодействия ваша программа должна:
Первая строка входного потока состоит из двух чисел N и M — размеры поля.
Далее следует N строк по M чисел, задающих каждую клетку. 0 — если клетка пустая.
Входной поток содержит единственное число — − 1, если игра окончена.
В выходной поток необходимо вывести единственный символ, характеризующий направление сдвига.
Символ 'l' — движение плиток влево, 'r' — вправо, 'u' — вверх, 'd' — вниз.
Количество шагов не превышает 106
2 ≤ N, M ≤ 10