Собесов

Backend Яндекса — Дино в компьютерной игре: подсчёт очков

АлгоритмыСимуляция и валидацияСредняяMiddle

Условие

Дино играет в «Бег с препятствиями» вслепую — без графики, по списку прыжков. Нужно подсчитать набранные очки.

Правила игры.

  • Препятствия трёх типов: камень (длина 1, +1 очко), бревно (длина 2, +3 очка), яма (длина 4, +5 очков).
  • Дино прыгает «моментально» по команде; чтобы прыгать ещё раз, должен сначала приземлиться.
  • Прыжок успешен, если: начался не позже появления препятствия и его длина ≥ длине препятствия.
  • За неуспешное «преодоление» препятствия — −1 очко (но итоговое ≥ 0).
  • В полёте подпрыгнуть нельзя.

Трасса некорректна, если:

  • препятствия пересекаются или касаются (одно ещё не закончилось, а следующее уже началось);
  • иначе — итоговый ответ 0.

Формат ввода

n                                # n < 10^5
a_1 a_2 … a_n                    # координаты начала препятствий, неубывающие, 1 ≤ a_i ≤ 10^6
b_1 b_2 … b_n                    # типы: 1=камень(L=1), 2=бревно(L=2), 3=яма(L=4)
m                                # m < 10^5
x_1 x_2 … x_m                    # координаты прыжков, неубывающие
y_1 y_2 … y_m                    # дальности прыжков, y_i ∈ {1, 2, 4}

Формат вывода

Целое число — результат Дино. Если трасса некорректна — 0.

Пример 1

Ввод:
5
10 15 20 25 27
3 1 2 1 1
4
9 14 20 25
1 2 4 4

Вывод: 5

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти