Задача "Прогулка питона"
Помогите, пожалуйста, решить задачу "Прогулка питона".
Имя входного файла: стандартный ввод
Имя выходного файла: стандартный вывод
Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
У Вани дома проживает ручной питон, с которым он очень любит гулять. Но сегодня питон первый раз самостоятельно выбрался на прогулку. А Ваня-то очень переживает за него! Сделайте, пожалуйста, снимок питона с воздуха и отправьте его Ване, чтобы он больше не переживал! Известно, что Ванин дом находится в точке (0, 0) координатной плоскости, а его питон обычно двигается «по спирали» против часовой стрелки. Спираль состоит из n отрезков — каждый из них в k раз длиннее предыдущего, а длина первого отрезка составляет x клеток. То есть, питон выползает из дома в координате (0, 0), продвигается на x клеток вправо, потом на kx клеток вверх, k 2x клеток влево и так далее. Формат входных данных В единственной строке вводятся три числа k, x, n (1 6 k, x, n 6 5) — «вид» спирали, по которой движется питон. Формат выходных данных Построчно выведите прямоугольник с изображением спирали, по которой движется питон. Обратите внимание, снимок не должен содержать ничего лишнего, его размер должен быть минимальным и содержать питона целиком! Также питон может проползать по одному и тому же месту несколько раз.
Стандартный ввод:
2 1 5
Стандартный вывод:
#####............
#...#............
#..##............
#................
#................
#................
#................
#................
#################
kon=0
k, x, n = map(int, input().split())#в k раз длиннее предыдущего, первый отрезок, n отрезков
z=x
k2=1
s=0
for i in range(1,n+1):
z=k2*x
k2*=k
if kon==4:
kon=0
kon+=1
s+=z
w = [['.'] * (z+1) for i in range(z//k+1)]
if kon==4:
x2,y= 0,-1
dx, dy = 1, 0
elif kon==1:
x2,y=-1,-1
dx, dy = 0, -1
elif kon==2:
x2,y=0,0
dx, dy = 0, 1
else:
x2,y=-1,0
dx, dy = -1, 0
vs=z+1
for i in range(1, s+2):
#print(z,k,vs)
vs-=1
if vs==0:
z=z//k
vs=z
dx, dy = dy,-dx
print(dx,dy)
w[x2][y]='#'
x2, y = x2+dx, y+dy
for i in w:
for j in i:
print(j, end='')
print()
Код выдаёт вроде верный результат в примере, но при замене значений он ошибается, а также работает слишком долго. Я новичок в программировании, поэтому код скорее всего очень корявый)