Ограничения: время – 2s/4s, память – 512MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
На краю деревни растет старая березовая аллея. Аллея имеет форму прямой полосы
шириной `W` метров. Вдоль левой стороны аллеи растет `N` берез, а вдоль правой — `M` берез, при этом `i`-я береза с
левой стороны аллеи находится на расстоянии `a_i` метров от начала аллеи, а `j`-я береза с правой стороны — на
расстоянии `b_j` метров от начала аллеи.
Отдыхая в деревне прошедшим летом, один юный информатик обнаружил, что кору берез стали грызть зайцы.
Чтобы защитить деревья от зайцев, мальчик решил окружить березы красной лентой (зайцы не любят красный цвет
и не станут заходить на огражденную лентой территорию). К сожалению, в его распоряжении оказалась только
лента длиной `L` метров, которую, к тому же, нельзя было разрезать. Единственное, что
можно было делать в этом случае — окружить этой лентой как можно больше берез. При этом, чтобы сохранить аллею,
необходимо окружить на каждой стороне аллеи хотя бы одну березу.
Требуется написать программу, которая по заданной длине ленты, ширине аллеи и положению берез на ней
определяет максимальное количество берез, которое можно окружить этой лентой. Считается, что березы
представляются точками, толщиной берез и шириной ленты следует пренебречь.
Формат входного файла
Первая строка входного файла содержит два разделенных пробелом целых числа: длину ленты `L` и ширину
аллеи `W` (`1\ ≤\ L\ ≤\ 2*10^5`, `1\ ≤\ W\ ≤\ 10^4`).
Вторая и третья строки описывают березы вдоль левой стороны аллеи. Вторая строка содержит число `N` — количество
берез (`1\ ≤\ N\ ≤\ 2000`), а третья строка содержит `N` различных целых чисел `a_1,\ a_2,\ …,\ a_N`, заданных по
возрастанию (`0\ ≤\ a_i\ ≤\ 10^5`).
Четвертая и пятая строки описывают березы вдоль правой стороны аллеи. Четвертая строка содержит число `M` — количество
берез (`1\ ≤\ M\ ≤\ 2000`), а пятая строка содержит `M` различных целых чисел `b_1,\ b_2,\ …,\ b_M`, заданных по
возрастанию (`0\ ≤\ b_i\ ≤\ 10^5`).
Формат выходного файла
Выходной файл должен содержать одно целое число: максимальное количество берез, которое можно оградить заданной лентой.
Гарантируется, что если максимальное число берез, которое можно оградить лентой длины `L`, равно `X`, то нет способа
оградить `(X+1)` березу лентой длины `(L\ +\ 10^{-5})`.
Пример ввода 1
18 4
3
0 3 6
4
0 3 6 10
Пример ввода 2
5 3
1
0
1
0
Пояснения к примерам
В первом примере можно, например, оградить березы способом, указанным на рисунке ниже.
Во втором примере длины ленты недостаточно, чтобы оградить хотя бы по одной березе с каждой стороны.
Система оценивания
Правильные решения для тестов, в которых `1\ ≤\ (N+M)\ ≤\ 50`, будут оцениваться из 30 баллов.
Правильные решения для тестов, в которых `1\ ≤\ (N+M)\ ≤\ 500`, будут оцениваться из 60 баллов.
Источник: региональный этап Всероссийской олимпиады по информатике 2012/2013, http://neerc.ifmo.ru/school/