🟢 Intern — двумерные массивы#
Четыре авторские задачи на индексы строк и столбцов, обход матрицы и оценку дополнительной памяти.
1. Итоги по классам#
В таблице записаны баллы учеников: строки — ученики, столбцы — контрольные. Найдите сумму баллов каждого ученика.
Ввод: R C (1 ≤ R,C ≤ 1000), затем матрица целых чисел от 0 до 100.
Вывод: R сумм в порядке учеников.
Пример:
60 15
Требование: время O(R*C), дополнительная память O(1) помимо матрицы. Можно обрабатывать матрицу по строкам.
2. Самая высокая точка#
На карте высот дана матрица. Найдите максимальную высоту и координаты клетки. Если максимум встречается несколько раз, выберите клетку с наименьшим номером строки, а затем столбца. Координаты в ответе начинаются с единицы.
Ввод: R C (1 ≤ R,C ≤ 1000), затем R*C целых чисел.
Вывод: высота, номер строки и номер столбца.
Пример:
2 3
4 9 2
9 1 7
9 1 2
Требование: один проход по матрице, O(1) дополнительной памяти.
3. Соседи клетки#
Клетки игрового поля бывают свободными (.) и занятыми (#). Для каждой клетки выведите количество занятых соседей по стороне: сверху, снизу, слева и справа.
Ввод: R C (1 ≤ R,C ≤ 500), затем R строк длины C из . и #.
Вывод: матрица чисел, в каждой строке C чисел.
Пример:
2 3
.#.
###
1 3 1
1 2 1
Требование: время O(R*C). Проверяйте границы каждого соседа. Результат разрешено хранить в отдельной матрице.
4. Рамка фотографии#
Дана прямоугольная таблица пикселей. Выведите сумму значений на границе матрицы. Угловые клетки учитываются ровно один раз. Если матрица состоит из одной строки или одного столбца, все клетки относятся к границе.
Ввод: R C (1 ≤ R,C ≤ 2000), затем матрица a[r][c] (|a[r][c]| ≤ 10^6).
Вывод: сумма значений границы.
Пример:
3 4
1 2 3 4
5 6 7 8
9 10 11 12
65
Требование: используйте long long для суммы и O(1) дополнительной памяти помимо входной матрицы.