В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
ilyapleshakov29
ilyapleshakov29
14.01.2020 22:01 •  Информатика

Решить ! нужно написать программу 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 - иначе.

Показать ответ
Ответ:
laura35
laura35
28.07.2020 21:18
Я решала эту задачу ...с горем - по - полам .. простите :(..
в ней должны быть равны элементы стоящие в одной побочной диагонале. всего побочных диагоналей 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.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота