아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Змейка

시간 제한2초메모리 제한1024 MB

요약
최대 100,000번의 이동으로 뱀이 자기 몸이나 벽에 부딪히지 않으면서 n x m 격자의 모든 칸을 채우는 경로를 찾는 문제다.
난이도

보통10점 중 7점

유형
시뮬레이션, 구현, 그리디, 완전 탐색
정답자
아직 제출이 없습니다

문제

Роясь в одном из сундуков у себя дома, Карыч нашел старый кнопочный телефон. На этом телефоне есть всего одна игра, зато какая! Змейка! Раньше Карыч много играл в нее, пока, например, ехал в поезде или стоял в очереди.

Игра происходит на клетчатом поле n×mn \times m. Поле не является зацикленным ни по вертикали, ни по горизонтали. То есть, если змейка врежется в границу поля, игра закончится проигрышем. Строки поля пронумерованы от 11 до nn сверху вниз, а столбцы --- от 11 до mm слева направо.

В любой момент времени змейка представляет из себя последовательность клеток, в которой каждые две последовательные клетки являются соседними по стороне. Каждая клетка встречается в последовательности не более одного раза. Первая клетка последовательности называется головой змейки, а последняя --- хвостом. Также, одна из клеток поля, не принадлежащих змейке, содержит яблоко.

На каждом ходу игрок должен выбрать одно из четырех направлений движения: <<вверх>>, <<вниз>>, <<влево>> или <<вправо>>. После этого, игра находит соседнюю с головой змейки клетку в выбранном игроком направлении. Назовем её qq.

  • Если в выбранном направлении нет клетки, то есть игрок сходил за границу поля, игра заканчивается.
  • Иначе, если в qq находится яблоко, змейка его съедает, её длина увеличивается на 11, и клетка qq добавляется в начало последовательности клеток, представляющих змейку.
  • Иначе, сначала из последовательности клеток удаляется последняя (хвост). Затем, если клетка qq все еще встречается в последовательности, значит змейка врезалась сама в себя, поэтому игра заканчивается. Иначе, клетка qq дописывается в начало последовательности.

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

В начале игры змейка имеет длину 11.

Карыч слышал, что если выиграть в этой игре, то есть заполнить змейкой все клетки поля, то игра покажет мультик. Но ему никогда не удавалось этого достичь. Помогите ему! Вы должны сделать не более 100,000100\\,000 ходов.

예제1

  1. 예제 1

    입력
    2 2
    1 1
    2 1
    
    ok
    
    ok
    
    new
    1 1
    
    new
    1 2
    
    win
    
    예상 출력
    
    
    
    R
    
    D
    
    L
    
    
    U
    
    
    R