10717: Квіти


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

Бали: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
Brain****, C++, Java, Pascal, Python, v8js

В ряд розташовано \(N\) квітів. Для кожної квітки відомі її висота - \(Hi\), та краса - \(Ai\). (Всі висоти \(H1,H2,...,Hn\) - різні).

Необхідно викинути деякі квіти з ряду так, щоб висоти квіток які залишились утворювали зростаючу послідовність (висота коної наступної квітки більша за попередню), і сума краси квіт, що залишились була максимальна.

Знайдіть максимально можливу суму краси квіток в результуючому ряді.

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

В першому рядку ціле число \(N\) (\(1 \le N \le 2*10^5\))
В другому рядку \(N\) цілих чисел \(Hi\) - висоти квіток (\(1 \le Hi \le N\), Всі \(Hi\) різні)
В третьому рядку \(N\) цілих чисел \(Ai\) - краса квіток (\(1 \le Ai \le 10^9\))

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

Виведіть максимально можливу сумарну красу квіток які залишаться.

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

4
3 1 4 2
10 20 30 40

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

60

Пояснення до прикладу-1

Залишаємо 2-гу та 4-ту зліва квітки.
Їх висоти 1 2, а сума краси 20+40=60

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

1
1
10

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

10

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

5
1 2 3 4 5
1000000000 1000000000 1000000000 1000000000 1000000000

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

5000000000

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

9
4 2 5 8 3 6 1 7 9
6 8 8 4 6 3 5 7 5

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

31

Пояснення до прикладу-4

Залишаємо 2-гу, 3-тю, 6-ту, 8-му та 9-ту квітки

Коментарі

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