
5464 주차장 python
# 1. 차가 들어올 때 주차장에 자리가 있다면 주차
# 2. 자리가 없다면 대기소에 추가 -> .insert(0, 차) => pop을 통해 먼저 들어온 차가 먼저 나가도록
# 3. 차가 나갈 때 주차료 계산 후 대기차량 있을시 주차
# n : 주차 공간의 수, m : 차량의 수, Rs : s번째 주차 공간의 단위 무게당 요금, Wk : 차량 k의 무게
n, m = map(int, input().split())
spot_pay = []
# Rs : spot_pay
for _ in range(n):
spot_pay.append(int(input()))
car_weight = []
# Wk : car_weight
for _ in range(m):
car_weight.append(int(input()))
total_money = 0
wait = [0] * n
enter = []
for _ in range(2*m):
what_is_car_number = int(input())
if what_is_car_number >= 1:
# 차가 들어온 경우
if 0 in wait:
for i in range(n):
if wait[i] == 0:
wait[i] = what_is_car_number
break
else:
#차가 꽉차서 대기해야합니다
enter.insert(0, what_is_car_number)
else:
# 차가 나간 경우
my_car_weight = car_weight[-what_is_car_number - 1]
my_car_enter = wait.index(-what_is_car_number)
total_money += my_car_weight * spot_pay[my_car_enter]
wait[my_car_enter] = 0
if len(enter) != 0:
# 대기차량 중에서 주차
wait[my_car_enter] = enter.pop()
print(total_money)