Двумерные массивы

231 задача
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Создадим эффект старой 8-битной графики! Разделим фото на блоки k×k и каждый блок заменим на один пиксель со средней яркостью. Программа получает на вход размеры фото n и m (оба делятся на k нацело), затем n строк по m чисел - пиксели, затем размер блока k. Программа должна вывести "пикселизированное" изображение: (n/k) строк по (m/k) чисел. Каждое число - это среднее арифметическое блока k×k из исходного изображения, округлённое вниз.
Из большой фотографии нужно вырезать прямоугольную область для аватарки. Программа получает на вход размеры исходной фотографии n и m, затем n строк по m чисел - пиксели, затем координаты вырезаемой области: r1, c1, r2, c2 (номера строк и столбцов начальной и конечной точек, нумерация с 1, включительно). Программа должна вывести вырезанную область: сначала её размеры (количество пикселей: по строкам и по столбцам через пробел), затем сами пиксели вырезанной части. Значения пикселей в вырезанной части выводятся построчно через пробел.
Детектор границ помогает найти контуры объектов на фото. Граница - это место, где яркость резко меняется. Программа получает на вход размеры изображения n и m (2<=n,m<=10), затем n строк по m чисел - яркость пикселей, затем порог чувствительности T. Программа должна вывести карту границ: n строк по m чисел (0 или 1). Пиксель является границей (выводим 1), если разница по модулю между ним и хотя бы одним из соседей (сверху, снизу, слева, справа) больше или равна T. Иначе выводим 0. Для крайних пикселей проверяем только существующих соседей. Пиксели в одной строке выводить через один пробел.
Нужно слегка размыть изображение для художественного эффекта. Используем простое размытие: каждый пиксель заменяется на среднее значение его самого и соседей (сверху, снизу, слева, справа). Программа получает на вход размеры изображения n и m, затем n строк по m чисел - яркость пикселей. Программа должна вывести размытое изображение: n строк по m чисел. Для каждого пикселя считаем среднее арифметическое его самого и существующих соседей (для угловых и крайних пикселей соседей меньше). Ответ округлять до целого вниз.
Фотография получилась блёклой! Нужно увеличить контраст: тёмные пиксели сделать ещё темнее, а светлые - ещё светлее. Программа получает на вход размеры фото n и m, затем n строк по m чисел - яркость пикселей (от 0 до 255). Программа должна применить увеличение контраста по правилу:
- Если яркость < 128 (тёмный пиксель): новая_яркость = старая_яркость / 2
- Если яркость >= 128 (светлый пиксель): новая_яркость = 128 + (старая_яркость - 128) / 2
Ответ округлять до целого вниз.

Выведите результат на экран. Числа в строке разделять одним пробелом.
Помните плёночные фотоаппараты? У них были негативы, где светлое становилось тёмным, а тёмное - светлым! Давайте создадим негатив цифрового фото. Программа получает на вход размеры фото n и m, затем n строк по m чисел - яркость пикселей (от 0 до 255, где 0 - чёрный, 255 - белый). Программа должна вывести негатив: n строк по m чисел. Каждый пиксель инвертируется по формуле: новая_яркость = 255 - старая_яркость.
В игровом турнире n команд сыграли с m противниками. Есть матрица результатов (количество побед каждой команды над каждым противником) и матрица весов (сколько очков даёт победа над каждым противником).
Программа получает на вход:
- Размеры n и m
- Матрицу A размера n×m (результаты: A[i][j] = количество побед команды i над противником j)
- Размеры m и k (k всегда равно 1 в этой задаче)
- Матрицу B размера m×1 (веса: B[j][0] = сколько очков даёт одна победа над противником j)

Программа должна вывести n чисел (каждое число в отдельной строке) - общий счёт команды i. 
Вы сделали селфи, но камера всё перевернула зеркально! Нужно отразить картинку по горизонтали (слева направо). Программа получает на вход размеры картинки n и m (высота и ширина), затем n строк по m чисел - пиксели картинки. Программа должна вывести отражённую по горизонтали картинку: n строк по m чисел. Первый столбец становится последним, второй - предпоследним и т.д.
Вы сделали классное фото, но оно получилось вертикальным, а нужно горизонтальное! Нужно транспонировать изображение - поменять строки и столбцы местами. Программа получает на вход размеры фотографии n и m (высота и ширина в пикселях), затем n строк по m чисел - яркость каждого пикселя (от 0 до 255). Программа должна вывести транспонированную матрицу: сначала новые размеры m и n, затем m строк по n чисел. При транспонировании элемент из позиции [i][j] переходит в позицию [j][i].
В конкурсе красоты участвуют модели. Строки — модели, столбцы — судьи. Найдите процент (округлённый вниз), который составляет сумма баллов победителя (модели с максимальной суммой) от общей суммы всех баллов всех моделей.

Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество моделей и судей. Следующие n строк содержат по m целых положительных чисел — баллы.

Формат выходных данных: Одно целое число — процент максимальной суммы строки от общей суммы (округлённый вниз).
В зоопарке кормят животных. Строки — животные, столбцы — дни недели. В таблице количество килограммов еды. Найдите разницу между максимальной и минимальной суммой по строкам (чтобы понять разброс аппетитов).

Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество животных и дней. Следующие n строк содержат по m целых неотрицательных чисел — килограммы еды.

Формат выходных данных: Одно целое число — разница между максимальной и минимальной суммой строк.
В городской больнице ведут статистику вызовов скорой помощи. Строки — районы города, столбцы — дни недели. Найдите самый спокойный день недели (с минимальным количеством вызовов суммарно). 

Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество районов и дней. Следующие n строк содержат по m целых неотрицательных чисел — количество вызовов.

Формат выходных данных: Одно целое число — номер столбца с минимальной суммой. Если таких несколько, выведите первый. Нумерация с 1.
В офисе программистов ведут учёт потребления кофе. Строки — программисты, столбцы — дни недели. Найдите номер программиста, который выпил больше всего чашек кофе за неделю.
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество программистов и дней. Следующие n строк содержат по m целых неотрицательных чисел — количество чашек кофе.
Формат выходных данных: Одно целое число — номер строки с максимальной суммой. Если таких несколько, выведите первую. Нумерация с 1.
В кафе "У дяди Васи" ведут учёт посетителей. Строки — недели, столбцы — дни недели (Пн-Вс). Найдите номер дня недели, когда суммарно за все недели было больше всего посетителей. 

Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество недель и дней. Следующие n строк содержат по m целых неотрицательных чисел — количество посетителей.
Формат выходных данных: Одно целое число — номер столбца (дня недели) с максимальной суммой. Если таких несколько, выведите первый. Нумерация с 1.
Семья ходит в магазин каждую неделю. В таблице записаны расходы каждого члена семьи в каждый день похода. Строки — члены семьи, столбцы — недели. Подсчитайте, сколько денег потратила вся семья за всё время. 
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество членов семьи и недель. Следующие n строк содержат по m целых неотрицательных чисел — расходы в рублях.
Формат выходных данных: Одно целое число — общая сумма расходов.
Маленький Петя записывает, сколько конфет он съедает каждый день недели в течение нескольких недель. Строки — недели, столбцы — дни недели (Пн-Вс). Найдите среднее количество конфет в день (округлите вниз до целого). 
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество недель и дней (m ≤ 7). Следующие n строк содержат по m целых неотрицательных чисел — количество конфет.
Формат выходных данных: Одно целое число — среднее количество конфет в день (сумма всех элементов делённая на n*m, округлённая вниз).
В школе ведут учёт посещаемости занятий. Строки — ученики, столбцы — предметы. В таблице записано количество посещённых уроков. Найдите номер предмета, который пропускали чаще всего (с минимальной суммой посещений).
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество учеников и предметов. Следующие n строк содержат по m целых неотрицательных чисел — количество посещённых уроков.
Формат выходных данных: Одно целое число — номер столбца с минимальной суммой. Если таких несколько, выведите первый. Нумерация с 1.
Друзья заказали пиццу нескольких видов. В таблице записано, сколько кусочков каждого вида съел каждый друг. Строки — друзья, столбцы — виды пиццы. Найдите номер друга, который съел больше всего кусочков суммарно (чемпион по поеданию пиццы 🍕).
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество друзей и видов пиццы. Следующие n строк содержат по m целых неотрицательных чисел — количество кусочков.
Формат выходных данных: Одно целое число — номер строки с максимальной суммой. Если таких несколько, выведите первую. Нумерация с 1.
В игровом клубе записывают, сколько часов каждый игрок провёл в разных играх. Строки — игроки, столбцы — игры. Найдите номер самой популярной игры (в которую играли больше всего часов суммарно).
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество игроков и игр. Следующие n строк содержат по m целых неотрицательных чисел — часы игры.
Формат выходных данных: Одно целое число — номер столбца с максимальной суммой. Если таких несколько, выведите первый. Нумерация с 1.
В университете студенты сдают домашние задания. Строки — студенты, столбцы — недели. В таблице записано количество решённых задач. Найдите номер самого ленивого студента (с минимальной суммой задач за весь семестр).
Формат входных данных: Первая строка содержит два целых числа n и m (1 ≤ n, m ≤ 100) — количество студентов и недель. Следующие n строк содержат по m целых неотрицательных чисел — количество решённых задач.
Формат выходных данных: Одно целое число — номер строки с минимальной суммой. Если таких несколько, выведите первую. Нумерация с 1.
Поделиться
Класснуть