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

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

Спираль

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

요약
로봇이 직진 구간을 이동하며 왼쪽으로 회전하고 이동 거리에 k를 곱할 때, 방문한 모든 칸을 담는 가장 작은 격자를 그리는 문제이다.
난이도

보통10점 중 4점

유형
시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

Робот перемещается по клетчатой плоскости и рисует спираль. Исходно он находится в клетке (0,0)(0, 0) и направлен в сторону увеличения первой координаты.

Далее он действует по следующему алгоритму: совершает dd перемещений вперед, затем поворачивает налево и снова делает dd перемещений вперед. После этого он поворачивает налево и умножает значение dd на kk. Затем робот повторяет описанный процесс. Робот останавливается, сделав суммарно ровно nn перемещений.

Требуется вывести картинку, на которой отмечены клетки, на которых побывал робот.

입력

На вход подаются целые числа nn, dd и kk (1≤n≤10001 \le n \le 1000, 1≤d≤1001 \le d \le 100, 2≤k≤52 \le k \le 5).

출력

Пусть минимальный прямоугольник из клеток, содержащий все посещенные роботом клетки, имеет высоту hh и ширину ww. На первой строке выведите числа hh и ww, разделенные пробелом. Следующие hh строк должны содержать по ww символов, выведите <<*>> для клетки, посещенной роботом и <<.>> для не посещенной.

예제1

  1. 예제 1

    입력
    13 2 2
    
    예상 출력
    5 5
    *****
    *...*
    *.***
    *....
    **...