|
0 / 0 / 0
Регистрация: 25.11.2022
Сообщений: 19
|
||||||
Определить количество клеток, в которых убран весь мусор10.09.2024, 16:30. Показов 3384. Ответов 31
Метки нет (Все метки)
Однажды, после неудачно написанного контеста на Codeforces, Михаил окончательно разочаровался в своей карьере спортивного программиста и решил устроиться на работу дворником. Однако, даже на такую должность его ждало собеседование.
В качестве собеседования Михаилу предложили очистить от мусора довольно большой двор. Для удобства представим двор как прямоугольную таблицу, состоящую из n строк и m столбцов. Строки пронумерованы сверху вниз числами от 1 до n, а столбцы — слева направо числами от 1 до m. На пересечении i-й строки и j-го столбца находится клетка с координатами (i,j).Изначально в каждой клетке двора лежит огромная куча мусора. Михаил в рамках своего собеседования произвел k операций, каждая из которых была одного из двух типов: Убрать весь мусор во всех клетках (i,j), таких что i+j=s; Убрать весь мусор во всех клетках (i,j), таких что i−j=d. Ваша задача — определить количество клеток, в которых Михаил убрал весь мусор. Формат входных данных Первая строка содержит два целых числа n и m (1≤n,m≤10**9) — размеры двора. Вторая строка содержит одно целое число k(0≤k≤300000) — количество операций, совершенных Михаилом. Каждая из следующих k строк содержит описание очередной операции, совершенной Михаилом в следующем формате: + s (2≤s≤n+m) — данная операция означает, что Михаил убрал весь мусор во всех клетках (i,j), таких что i+j=s; - d(1−m≤d≤n−1)— данная операция означает, что Михаил убрал весь мусор во всех клетках (i,j), таких что i−j=d. Формат выходных данных Выведите одно целое число — количество клеток, в которых Михаил убрал весь мусор. Примеры Входные данные 4 4 4 + 4 + 2 - 0 - -3 Выходные данные 7 Примечания Рассмотрим действия Михаила в примере из условия: Михаил убирает мусор из клеток (i,j), для которых i+j=4. Это клетки с координатами (1,3), (2,2) и (3,1). Михаил убирает мусор из клеток (i,j), для которых i+j=2. Это клетка с координатами (1,1). Михаил убирает мусор из клеток (i,j), для которых i−j=0. Это клетки с координатами (1,1), (2,2), (3,3) и (4,4). Михаил убирает мусор из клеток (i,j), для которых i−j=−3. Это клетка с координатами (1,4). Таким образом, мусор был убран из клеток (1,1), (1,3), (1,4), (2,2), (3,1), (3,3) и (4,4). Написал код на с++, но он падает по времени на 17 тесте, кто может помочь с оптимизацией)
0
|
||||||
| 10.09.2024, 16:30 | |
|
Ответы с готовыми решениями:
31
Закрасить минимальное количество клеток, так, чтобы множество черных клеток стало выпуклым Определить количество раскрасок полоски из N клеток
|
|
31 / 20 / 12
Регистрация: 28.08.2024
Сообщений: 42
|
|
| 11.09.2024, 21:13 | |
|
aqsdds, Четные диагонали - это те, у которых сумма или разность координат четные. Четные прямые диагонали могут пересекаться только с четными обратными и наоборот. Нечетные прямые диагонали могут пересекаться только с нечетными обратными и наоборот. Точка пересечения двух диагоналей равна одной ячейке или 0 ячейкам (если они пересекаются за пределами внутреннего двора). С каждой диагональю пересекается некоторый непрерывный поддиапазон перпендикулярных диагоналей, и выше и ниже него ничего не пересекается.
Поэтому при вводе мы сохраняем диагонали в 4 массива: прямые четные, прямые нечетные, обратные четные, обратные нечетные. Мы сортируем прямые линии. Мы проходим через обратные и используем бинарный поиск, чтобы найти количество их пересечений с прямыми линиями. Ответом будет общая длина всех диагоналей за вычетом количества точек пересечения.
0
|
|
|
0 / 0 / 0
Регистрация: 25.11.2022
Сообщений: 19
|
||
| 11.09.2024, 21:15 [ТС] | ||
|
0
|
||
|
31 / 20 / 12
Регистрация: 28.08.2024
Сообщений: 42
|
|
| 11.09.2024, 21:16 | |
|
Artem Ka, Скинул в ЛС
0
|
|
|
0 / 0 / 0
Регистрация: 11.09.2024
Сообщений: 4
|
|
| 11.09.2024, 21:17 | |
|
Whabablca, Ты что клал в 4 массива? А как ты потом в бин поиске диагонали сравнивал, по какому принципу?
Добавлено через 26 секунд Whabablca, Мне тоже можешь пж
0
|
|
|
0 / 0 / 0
Регистрация: 25.11.2022
Сообщений: 19
|
|
| 11.09.2024, 21:18 [ТС] | |
|
0
|
|
|
31 / 20 / 12
Регистрация: 28.08.2024
Сообщений: 42
|
||||||
| 11.09.2024, 21:38 | ||||||
0
|
||||||
|
0 / 0 / 0
Регистрация: 25.11.2022
Сообщений: 19
|
||
| 11.09.2024, 21:44 [ТС] | ||
|
0
|
||
| 12.09.2024, 08:17 | |
|
0
|
|
|
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
|
||||||
| 12.09.2024, 11:37 | ||||||
0
|
||||||
|
Модератор
13789 / 10981 / 6492
Регистрация: 18.12.2011
Сообщений: 29,281
|
||
| 12.09.2024, 13:44 | ||
|
повар1,
как это поместить в s? ![]() И зачем двойные циклы, если i и j связаны линейной зависимостью?
1
|
||
|
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
|
|
| 12.09.2024, 14:26 | |
|
0
|
|
|
848 / 651 / 323
Регистрация: 24.02.2017
Сообщений: 2,297
|
|
| 12.09.2024, 14:30 | |
|
0
|
|
| 12.09.2024, 14:30 | |
|
Определить, какое количество клеток шахматного поля не заняты и не находятся под боем
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|