Максим М
Знаток
(300)
1 день назад
n = int(input())
hemisphere = input()
matrix = [[0 for _ in range(n)] for _ in range(n)]
count = 1
mid = n // 2
matrix[mid][mid] = count
if hemisphere == 'N':
direction = 1 # 1 - right, -1 - left
row = mid
col = mid + 1
while count < n * n:
count += 1
matrix[row][col] = count
if col + direction >= n or col + direction < 0:
direction *= -1
row += 1
else:
col += direction
elif hemisphere == 'S':
direction = -1 # -1 - right, 1 - left
row = mid
col = mid - 1
while count < n * n:
count += 1
matrix[row][col] = count
if col + direction >= n or col + direction < 0:
direction *= -1
row += 1
else:
col += direction
for row in matrix:
print(*row)
Ограничение времени 1 секунда
Ограничение памяти 256Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Кузьма постоянно изучает дополнительную литературу по разным предметам, в том числе и по физике. Недавно он прочитал про Силу Кориолиса, из-за которой воронка утекающей воды в Северном полушарии закручивается вправо, а в Южном полушарии - влево! PIC Помогите Кузьме смоделировать данный эффект.
Формат ввода
В первой строке содержится нечетное число
n
(
1
≤
n
≤
9
9
)
- размер воронки. Во второй символ обозначающий полушарие: N (северное) или S (южное).
Формат вывода
Выведите массив размера
n
x
n
(с переносом строк и символом табуляции между элементами строки) заполненный числами от 1 до
n
2
и демонстрирующий описанный эффект (центральная клетка в массиве равна единице, дальнейшее заполнение происходит по заданному направлению и инкрементальному росту значения)
Пример 1
Ввод Вывод
3
N
9 2 3
8 1 4
7 6 5
Пример 2
Ввод Вывод
5
S
13 12 11 10 25
14 3 2 9 24
15 4 1 8 23
16 5 6 7 22
17 18 19 20 21
Примечания
Символ табуляции в Python, C++ обозначается \t