12094. Пройти шлях


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

На двовимірній площині Степан спочатку знаходиться в точці (0,0), а його початкове здоров’я — \(H\). \(M\) предметів для відновлення здоров’я розміщено на площині; \(i\)-й з них розміщується в \((x_i ,y_i )\).

Степан зробить \(N\) ходів. \(І\)-й хід такий.

  • Нехай \((x,y)\) — його поточні координати. Він споживає здоров’я 1, щоб перейти до наступної точки, залежно від \(S_i\):

    \((x+1,y)\), якщо \(S_i\) ​ є \(R\);

    \((x−1,y)\), якщо \(S_i\) ​ є \(L\);

    \((x,y+1)\), якщо \(S_i\) ​ є \(U\);

    \((x,y−1)\), якщо \(S_i\) ​ дорівнює \(D\).

  • Якщо стан здоров’я Степана став відʼємним, він падає і перестає рухатися. В іншому випадку, якщо предмет розміщено в точці, куди він переїхав, і його здоров’я строго менше \(K\), тоді він споживає предмет там, щоб зробити своє здоров’я \(K\).

Визначте, чи зможе Степан виконати \(N\) ходів і не впасти.

Обмеження

  • \(1≤N,M,H,K≤2×10^5\)
  • \(S\) – це рядок довжиною \(N\), що складається з \(R, L, U\) та \(D\).
  • \(∣x_i ​ ∣,∣y_i ∣≤2×10^5\)
  • \((x_i ​ ,y_i ​)\) є попарно різними.
  • Усі значення у вхідних даних є цілими, крім \(S\).

Формат вхідних даних

Перший рядок містить цілі числа \(N,M,H,K\).

Наступний   рядок містить \(S\).

Далі  \(M\) рядків містять цілі числа \(x_i, y_i\).

Формат вихідних даних

У вихідний потік виведіть відповідь: Yes або No.

Приклад вхідних даних

4 2 3 1
RUDL
-1 -1
1 0

Приклад вихідних даних

Yes

Спочатку здоров'я Степана дорівнює 3. Ми описуємо ходи нижче.

  • 1-й хід: \(S_i\) ​ є \(R\), тому він рухається до точки (1,0). Його здоров'я знижується до 2. Хоча предмет знаходиться в точці (1,0), він не споживає його, оскільки його здоров'я не менше, ніж \(K=1\).
  • 2-й хід: \(S_i\) ​ є \(U\), тому він переходить до точки (1,1). Його здоров'я зменшується до 1.
  • 3-й хід: \(S_i\) ​ є \(D\), тому він переходить до точки (1,0). Його здоров’я зменшується до 0. Предмет розміщується в точці (1,0), а його здоров’я менше \(K=1\), тому він споживає предмет, щоб зробити своє здоров’я 1.
  • 4-й хід: \(S_i\) ​ дорівнює \(L\), тому він рухається до точки (0,0). Його здоров'я знижується до 0.

Таким чином, він може зробити 4 ходи, не впавши. Зверніть увагу, що здоров'я може досягати 0.

Приклад вхідних даних

5 2 1 5
LDRLD
0 0
-1 -1

Приклад вихідних даних

No

Коментарі

Ще немає коментарів.