Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк, заканчивающихся строкой, содержащей только строку "end" (без кавычек)
Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен сумме элементов первой матрицы на позициях (i-1, j), (i+1, j), (i, j-1), (i, j+1). У крайних символов соседний элемент находится с противоположной стороны матрицы.
В случае одной строки/столбца элемент сам себе является соседом по соответствующему направлению.
Пример решения:
convert_to_int, input_matrix = [], []
while True:
lst = [x for x in input().split()] # here we get strings
if 'end' not in lst:
convert_to_int = [int(item) for item in lst] # here we convert it to integers
input_matrix.append(convert_to_int)
continue
else:
break
if not input_matrix:
print(*input_matrix)
quit()
N, M = len(input_matrix[0]), len(input_matrix)
out_matrix = []
for i, lst in enumerate(input_matrix): # raw and list
for j, value in enumerate(lst): # column and value
out_matrix.append(
input_matrix[(i - 1) % M][j] + input_matrix[(i + 1) % M][j] + input_matrix[i][(j - 1) % N] +
input_matrix[i][(j + 1) % N])
step = N
counter = 0
for index,val in enumerate(out_matrix):
if index == len(out_matrix)-1:
print(*out_matrix[counter:])
elif index == N:
print(*out_matrix[counter:index])
counter += step
N += step
программа (как мне кажется) корректно отрабатывает на локальной IDE согласно условиям задачи, но при проверке на сайте появляется ошибка
Failed test #4. Wrong answer
Преподаватель на курсе говорит, что проблема в
в не соответствии решения выставленным требованиям.
> на вход которой подаётся прямоугольная матрица
Есть мысль переделать программу так, чтобы output_матрица наполнялась к примеру нулями согласно значению переменных
N и
M, которые будут принимать их от размеров сторон input_матрицы, но видел решения у других и там такого не было хотя не факт, что оно прошло все проверки, но это никак не относится к замечанию выше и навряд ли поможет...
примеры input/output:
9 5 3
0 7 -1
-5 2 9
end
3 21 22
10 6 19
20 16 -1
Process finished with exit code 0
1
end
4
Process finished with exit code 0
1 2 3 4
5 6 7 8
end
16 16 20 20
16 16 20 20
Process finished with exit code 0
1 2
3 4
5 6
7 8
end
14 14
14 14
22 22
22 22
Process finished with exit code 0