Решить ! нужно написать программу c. хорошая таблица имеется прямоугольная целочисленная таблица размером n•m. «путём» в этой таблице назовём последовательность из n+m-1 клеток, которая начинается из клетки (1, 1), заканчивается клеткой (n, m) и любые две идущие подряд клетки в этой последовательности имеют общую сторону. назовём таблицу «хорошей», если сумма чисел в клетках каждого пути в этой таблице одна и та же. определить, является ли данная таблица «хорошей». входные данные во входном файле input.txt записаны не более 10 таблиц. запись каждой таблицы содержит в первой строке два числа — количество строк n и количество столбцов m (1 ≤ n, 1 ≤ m, n•m ≤ 30000). в следующих n строках содержатся по m чисел — значения элементов таблицы — целые числа от -32000 до 32000. последняя строка входного файла содержит значения 0 0. выходные данные в единственную строку выходного файла output.txt нужно вывести строку из символов y и n. длина строки равна количеству таблиц во входном файле. символ y обозначает что соответствующая таблица «хорошая», n - иначе.
в ней должны быть равны элементы стоящие в одной побочной диагонале. всего побочных диагоналей n+m-1.
достаточно хранить первую строку и последний столбец,
var n, m, i, j, b : integer;
a : array [1..30000] of integer;
t : boolean; begin assign(input,'input.txt');
reset(input);
assign(output,'output.txt');
rewrite(output);
readln(n,m);
while n+m>0 do
begin
t:=true;
for j:=1 to m do
read(a[j]);
for i:=2 to n do begin
for j:=1 to m-1 do begin
read(b);
t:=t and (b=a[i+j-1]) end;
read(b);
a[m+i-1]:=b end;
if t then write('Y') else write('N');
readln(n,m) end;
close(output) ;
end.