В левом верхнем углу прямоугольного поля размера N×M сидит Черепашка. Она хочет закрасить некоторые клетки по спирали, закручивающейся к центру, как на рисунке:
Определите, сколько клеток ей придётся закрасить.
Формат входных данных
Первая строка входных данных содержит число N — высоту прямоугольника.
Вторая строка содержит число M — ширину прямоугольника.
Все числа целые положительные и не превосходят 2×109.
Формат выходных данных
Программа должна вывести одно целое число — количество клеток, закрашенных Черепашкой.
Обратите внимание, что ответ в этой задаче может превышать возможное значение 32‑битной целочисленной переменной, поэтому необходимо использовать 64‑битные целочисленные типы данных (тип int64 в языке Pascal, тип long long в C++, тип long в Java и C#).
Ввод
Вывод
5
6
20
1
5
5
1 Ответ
Ответ:
def zm(n)
dx, dy = 1,
0 x, y = 0, 0
arr = [[None] * n for _ in range(n)]
for i in range(1, n**2+1):
arr[x][y] = i
nx, ny = x+dx, y+dy
if 0 <= nx < n and 0 <= ny < n and not arr[nx][ny]:
x, y = nx, ny
else:
dx, dy = -dy, dx
x, y = x+dx, y+dy
for x in list(zip(*arr)):
print(*x)