Добавить задачи по двумерным массивам — Intern #4
1 файл изменён
+89
Войди, чтобы оставлять замечания к строкам.
Показать разницуСкрыть разницу
| @@ -0,0 +1,89 @@ | |||
| 1 | +# 🟢 Intern — двумерные массивы | ||
| 2 | + | ||
| 3 | +Четыре авторские задачи на индексы строк и столбцов, обход матрицы и оценку дополнительной памяти. | ||
| 4 | + | ||
| 5 | +## 1. Итоги по классам | ||
| 6 | + | ||
| 7 | +В таблице записаны баллы учеников: строки — ученики, столбцы — контрольные. Найдите сумму баллов каждого ученика. | ||
| 8 | + | ||
| 9 | +**Ввод:** `R C` (`1 ≤ R,C ≤ 1000`), затем матрица целых чисел от `0` до `100`. | ||
| 10 | + | ||
| 11 | +**Вывод:** `R` сумм в порядке учеников. | ||
| 12 | + | ||
| 13 | +**Пример:** | ||
| 14 | +'''text | ||
| 15 | +2 3 | ||
| 16 | +10 20 30 | ||
| 17 | +5 5 5 | ||
| 18 | +''' | ||
| 19 | +'''text | ||
| 20 | +60 15 | ||
| 21 | +''' | ||
| 22 | + | ||
| 23 | +**Требование:** время `O(R*C)`, дополнительная память `O(1)` помимо матрицы. Можно обрабатывать матрицу по строкам. | ||
| 24 | + | ||
| 25 | +## 2. Самая высокая точка | ||
| 26 | + | ||
| 27 | +На карте высот дана матрица. Найдите максимальную высоту и координаты клетки. Если максимум встречается несколько раз, выберите клетку с наименьшим номером строки, а затем столбца. Координаты в ответе начинаются с единицы. | ||
| 28 | + | ||
| 29 | +**Ввод:** `R C` (`1 ≤ R,C ≤ 1000`), затем `R*C` целых чисел. | ||
| 30 | + | ||
| 31 | +**Вывод:** высота, номер строки и номер столбца. | ||
| 32 | + | ||
| 33 | +**Пример:** | ||
| 34 | +'''text | ||
| 35 | +2 3 | ||
| 36 | +4 9 2 | ||
| 37 | +9 1 7 | ||
| 38 | +''' | ||
| 39 | +'''text | ||
| 40 | +9 1 2 | ||
| 41 | +''' | ||
| 42 | + | ||
| 43 | +**Требование:** один проход по матрице, `O(1)` дополнительной памяти. | ||
| 44 | + | ||
| 45 | +## 3. Соседи клетки | ||
| 46 | + | ||
| 47 | +Клетки игрового поля бывают свободными (`.`) и занятыми (`#`). Для каждой клетки выведите количество занятых соседей по стороне: сверху, снизу, слева и справа. | ||
| 48 | + | ||
| 49 | +**Ввод:** `R C` (`1 ≤ R,C ≤ 500`), затем `R` строк длины `C` из `.` и `#`. | ||
| 50 | + | ||
| 51 | +**Вывод:** матрица чисел, в каждой строке `C` чисел. | ||
| 52 | + | ||
| 53 | +**Пример:** | ||
| 54 | +'''text | ||
| 55 | +2 3 | ||
| 56 | +.#. | ||
| 57 | +### | ||
| 58 | +''' | ||
| 59 | +'''text | ||
| 60 | +1 3 1 | ||
| 61 | +1 2 1 | ||
| 62 | +''' | ||
| 63 | + | ||
| 64 | +**Требование:** время `O(R*C)`. Проверяйте границы каждого соседа. Результат разрешено хранить в отдельной матрице. | ||
| 65 | + | ||
| 66 | +## 4. Рамка фотографии | ||
| 67 | + | ||
| 68 | +Дана прямоугольная таблица пикселей. Выведите сумму значений на границе матрицы. Угловые клетки учитываются ровно один раз. Если матрица состоит из одной строки или одного столбца, все клетки относятся к границе. | ||
| 69 | + | ||
| 70 | +**Ввод:** `R C` (`1 ≤ R,C ≤ 2000`), затем матрица `a[r][c]` (`|a[r][c]| ≤ 10^6`). | ||
| 71 | + | ||
| 72 | +**Вывод:** сумма значений границы. | ||
| 73 | + | ||
| 74 | +**Пример:** | ||
| 75 | +'''text | ||
| 76 | +3 4 | ||
| 77 | +1 2 3 4 | ||
| 78 | +5 6 7 8 | ||
| 79 | +9 10 11 12 | ||
| 80 | +''' | ||
| 81 | +'''text | ||
| 82 | +65 | ||
| 83 | +''' | ||
| 84 | + | ||
| 85 | +**Требование:** используйте `long long` для суммы и `O(1)` дополнительной памяти помимо входной матрицы. | ||
| 86 | + | ||
| 87 | +--- | ||
| 88 | + | ||
| 89 | +[⬅️ К материалу по двумерным массивам](README.md) | ||