페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#5951

주차장 1초 256MB

문제

주차장은 1부터 N까지 번호가 매겨진 N개의 주차 공간을 가지고 있다.

이 주차장은 매일 아침 모든 주차 공간이 비어 있는 상태에서 영업을 시작하며, 하룻동안 다음과 같은 방식으로 운영된다.

  • 차가 주차장에 도착하면, 주차장 관리인이 비어있는 주차 공간이 있는지를 검사한다.

  • 만일 비어있는 공간이 없으면, 차량을 빈 공간이 생길 때까지 입구에서 기다리게 한다.

  • 만일 빈 주차 공간이 하나만 있거나 또는 빈 주차 공간이 없다가 한 대의 차량이 주차장을 떠나면 곧바로 그 장소에 주차를 하게 한다.

  • 만일 빈 주차 공간이 여러 곳이 있으면, 그 중 번호가 가장 작은 주차 공간에 주차하도록 한다.

  • 만일 주차장에 여러 대의 차량이 도착하면, 일단 도착한 순서대로 입구의 대기장소에서 줄을 서서 기다려야 한다. (먼저 대기한 차량부터 먼저 주차한다.)

주차료는 차량 a가 주차공간 b에 주차를 한다면 차량의 무게 W_a에 주차 공간마다 따로 책정된 단위 무게당 요금 R_b를 곱한 가격이다.

주차장 관리원은 오늘 M대의 차량이 주차장을 이용할 것이라는 것을 알고 있다. 또한, 차량들이 들어오고 나가는 순서도 알고 있다.

주차 공간별 요금과 차량들의 무게와 출입 순서가 주어질 때, 오늘 하룻동안 주차장이 벌어들일 총 수입을 계산하는 프로그램을 작성하라.


입력

첫 번째 줄에는 정수 NM이 빈칸을 사이에 두고 주어진다.

그 다음 N개의 줄에는 주차 공간들의 단위 무게당 요금을 나타내는 정수들이 주어진다. 그 중 s번째 줄에는 주차 공간 s의 단위 무게당 요금 R_s가 들어있다.

그 다음 M개의 줄에는 차량들의 무게를 나타내는 정수들이 주어진다. 차량들은 1 부터 M 까지 번호로 구분되고, 이 번호는 출입 순서와는 상관없다. 이 M개의 줄 중 k번째 줄에는 차량 k의 무게를 나타내는 정수 W_k가 들어있다.

그 다음 2 \times M 개의 줄에는 차량들의 주차장 출입 순서를 나타내는 정수들이 한 줄에 하나씩 주어진다. 양의 정수 i는 차량 i가 주차장에 들어오는 것을 의미하고, 음의 정수 -i는 차량 i가 주차장에서 나가는 것을 의미한다.

주차장에 들어오지 않은 차량이 주차장에서 나가는 경우는 없다. 1 번부터 M 번까지 모든 차량은 정확하게 한 번씩 주차장에 들어오고, 한 번씩 주차장에서 나간다. 또한 입구에서 대기 중인 차량이 주차를 하지 못하고 나가는 경우는 없다.

  • 1 ≤ N ≤ 100 : 주차 공간의 수

  • 1 ≤ M ≤ 2\,000 : 차량의 수

  • 1 ≤ R_s ≤ 100 : 주차 공간 s의 단위 무게당 요금

  • 1 ≤ W_k ≤ 10\,000 : 차량 k의 무게


출력

오늘 하룻동안 주차장이 벌어들인 총 수입을 출력한다.


예제1

입력
34
2
3
5
200
100
300
800
3
2
-3
1
4
-4
-2
-1
출력
5300

차량 3이 주차 공간 1에 주차한다. 주차료는 300 * 2 = 600 이다.

차량 2가 주차 공간 2에 주차한다. 주차료는 100 * 3 = 300 이다.

차량 1이 차랑 3이 떠난 주차공간 1에 주차한다. 주차료는 200 * 2 = 400 이다.

차량 4가 마지막 남은 주차 공간 3에 주차한다. 주차료는 800 * 5 = 4,000 이다.


예제2

입력
24
5
2
100
500
1000
2000
3
1
2
4
-1
-3
-2
-4
출력
16200

출처

IOI 2009 day2 1

역링크