eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Парковка

Парковка

Парковка має n місць, пронумерованих від 1 до n включно. Парковка відкривається порожньою щоранку і працює протягом дня наступним чином. Коли автомобіль приїжджає на парковку, паркувальник перевіряє, чи є вільні місця. Якщо таких немає, автомобіль чекає біля в'їзду до тих пір, поки звільниться якесь місце. Якщо є вільне місце, або як тільки воно звільняється, автомобіль займає вільне місце для паркування. Якщо є кілька вільних паркувальних місць, автомобіль займає місце з найменшим номером. Коли приїжджають паркуватися інші автомобілі, але вже є автомобіль що очікує, вони шикуються в чергу на в'їзді в тому порядку, в якому приїхали. Після того, як звільняється паркувальне місце, його займає перший автомобіль з черги (тобто той, який прибув паркуватися першим).

Вартість паркування одного автомобіля в доларах визначається як добуток ваги цього автомобіля в кілограмах на тариф його паркувального місця. Вартість паркування автомобіля не залежить від того, скільки часу цей автомобіль знаходиться на парковці.

Паркувальник знає, що сьогодні на парковку приїде m автомобілів, і він знає порядок їх приїзду та від'їзду. Допоможіть йому підрахувати, скільки доларів він заробить сьогодні.

Напишіть програму, яка за заданими тарифами паркувальних місць, ваги автомобілів та порядку, в якому автомобілі приїжджають і виїжджають, визначає прибуток паркувальника в доларах.

Вхідні дані

Перший рядок містить два цілі числа - кількість паркувальних місць n (1n100) та кількість автомобілей m (1m2000), розділених проміжком.

Наступні n рядків описують тарифи паркувальних місць, s-ий з цих рядків містить одне ціле число rs (1rs100) - тариф паркувального місця з номером s в доларах за кілограм.

Наступні m рядків описують ваги автомобілей. Автомобілі пронумеровані в довільному порядку від 1 до m включно, k-ий з цих m рядків містить одне ціле число wk (1wk10000) – вагу автомобіля з номером k в кілограмах.

Наступні 2m рядків описують приїзд та виїзд усіх автомобілів в хронологічному порядку. Додатне ціле число i показує, що автомобіль з номером i приїжджає на парковку. Від'ємне ціле число -i показує, що автомобіль з номером i їде з парковки. Жодний автомобіль не виїжджає з парковки до свого приїзду, і всі автомобілі від 1 до m включно з'являться в цій послідовності рядків рівно 2 рази, один раз як приїжджає, і другий - як виїжджає. До того ж, жоден з автомобілів не виїде з парковки, поки не займе місце на парковці (тобто, жодний автомобіль не виїде поки стоїть в черзі).

Вихідні дані

Виведіть одне ціле число - загальна кількість доларів, яку заробить сьогодні паркувальник.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
3 4
2
3
5
200
100
300
800
3
2
-3
1
4
-4
-2
-1
Вихідні дані #1
5300
Вхідні дані #4
4 4
8
8
2
2
8
9
9
6
2
4
1
3
-3
-4
-2
-1
Вихідні дані #4
154
Джерело IOI-2009, Day 2