Тема: Проблема з завданням.
▼Прихований текст
Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк, заканчивающихся строкой, содержащей только строку "end" (без кавычек)
Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен сумме элементов первой матрицы на позициях (i-1, j), (i+1, j), (i, j-1), (i, j+1). У крайних символов соседний элемент находится с противоположной стороны матрицы.
В случае одной строки/столбца элемент сам себе является соседом по соответствующему направлению.
УВАГА ГВНКОД !
На локальній машині все спрацьовує . А ось здати тест не вдається.
▼Прихований текст
import re
a=[]
while True:
s=input()
if s=='end': break
row=[]
for t in re.findall('-?[0-9]+', s):
row.append(int(t))
a.append(row)
x=len(a)
b = []
for i in range(1,x+1):
y = len(a[i-1])
for j in range(1,y+1):
if x == 1:
x3=(a[i-1][j-1])
x4=x3
if y ==1:
s = a[i-1][j-1] *4
print (s)
else:
if j == 1:
x1=(a[i-1][y-1])
x2= (a[i-1][j])
elif j==(y):
x1=(a[i-1][j-2])
x2= (a[i-1][1])
else:
x1=(a[i-1][j-2])
x2= (a[i-1][j])
s = x1+x2+x3+x4
print (s)
elif x!=1:
if (i == 1):
if j == 1:
x1=(a[i-1][y-1])
x2= (a[i-1][j])
elif j==(y):
x1=(a[i-1][j-2])
x2= (a[i-1][0])
else:
x1=(a[i-1][j-2])
x2= (a[i-1][j])
x3= a[x-1][j-1]
x4= (a[i][j-1])
elif i==(x):
if j == 1:
x1=(a[i-1][y-1])
x2= (a[i-1][j])
elif j==(y):
x1=(a[i-1][j-2])
x2= (a[i-1][0])
else:
x1=(a[i-1][j-2])
x2= (a[i-1][j])
x3=(a[i-2][j-1])
x4= (a[0][j-1])
else:
if j == 1:
x1=(a[i-1][y-1])
x2= (a[i-1][j])
elif j==(y):
x1=(a[i-1][j-2])
x2= (a[i-1][0])
else:
x1=(a[i-1][j-2])
x2= (a[i-1][j])
x3=(a[i-2][j-1])
x4= (a[x-1][j-1])
s = x1+x2+x3+x4
b.append(s)
zzz=0
for k in range(0,x):
for m in range(0,y):
print (b[zzz], end=' ')
zzz=zzz+1
print ('\t')