주차장

면접 대비

시간 제한1초메모리 제한128 MB

요약
주차장에 차가 들어오고 나가는 과정을 시뮬레이션하면서, 빈 공간 중 번호가 가장 작은 곳에 배정하거나 대기열에 세우고 무게와 요금의 곱을 모두 더한다.
난이도

보통10점 중 4점

유형
시뮬레이션, 큐, 힙, 구현
정답자
아직 제출이 없습니다

문제

시내 주차장에는 11부터 NN까지 번호가 매겨진 NN개의 주차 공간이 있다. 주차장은 매일 아침 모든 주차 공간이 비어 있는 상태로 영업을 시작하며, 하루 동안 다음 규칙에 따라 운영된다.

차가 도착하면 관리인은 비어 있는 주차 공간이 있는지 확인한다. 빈 공간이 없으면 차량은 빈자리가 생길 때까지 입구에서 기다린다. 빈 공간이 생기면(또는 도착 시점에 이미 빈 공간이 있으면) 곧바로 주차한다. 빈 공간이 여러 개이면 그중 번호가 가장 작은 공간에 주차한다. 여러 대가 동시에 몰리면 도착한 순서대로 입구 대기열에 줄을 서며, 대기열은 큐(queue)처럼 먼저 도착한 차부터 주차한다.

주차료는 주차 시간이 아니라 차량의 무게에 비례한다. 주차료는 차량의 무게에, 그 차가 주차한 공간별 단위 무게당 요금을 곱한 값이다.

관리인은 오늘 MM대의 차량이 주차장을 이용한다는 것과, 차량이 들어오고 나가는 순서를 모두 알고 있다.

주차 공간별 요금, 각 차량의 무게, 그리고 출입 순서가 주어질 때 오늘 하루 동안 주차장이 벌어들이는 총수입을 구하는 프로그램을 작성하라.

입력

  • 첫째 줄에 두 정수 NN과 MM이 공백으로 구분되어 주어진다.
  • 이어지는 NN개의 줄에는 각 주차 공간의 단위 무게당 요금이 주어진다. 그중 ss번째 줄은 주차 공간 ss의 단위 무게당 요금 RsR_s이다.
  • 이어지는 MM개의 줄에는 각 차량의 무게가 주어진다. 차량은 11번부터 MM번까지 번호로 구분되며, 이 번호는 출입 순서와 무관하다. 그중 kk번째 줄은 차량 kk의 무게 WkW_k이다.
  • 이어지는 2M2M개의 줄에는 차량의 출입 순서가 한 줄에 하나씩 주어진다. 양의 정수 ii는 차량 ii가 주차장에 들어옴을, 음의 정수 −i-i는 차량 ii가 주차장에서 나감을 뜻한다.

들어오지 않은 차량이 나가는 경우는 없다. 11번부터 MM번까지 모든 차량은 정확히 한 번씩 들어오고 한 번씩 나간다. 또한 입구에서 대기하던 차량이 주차하지 못하고 그냥 나가는 경우도 없다.

  • 1≤N≤1001 \le N \le 100 (주차 공간의 수)
  • 1≤M≤2,0001 \le M \le 2{,}000 (차량의 수)
  • 1≤Rs≤1001 \le R_s \le 100 (주차 공간 ss의 단위 무게당 요금)
  • 1≤Wk≤10,0001 \le W_k \le 10{,}000 (차량 kk의 무게)

출력

한 줄에 정수 하나를 출력한다. 이 값은 오늘 하루 동안 주차장이 벌어들인 총수입이다.

힌트

예를 들어 주차 공간의 요금이 각각 2,3,52, 3, 5이고, 차량의 무게가 각각 200,100,300,800200, 100, 300, 800이며, 출입 순서가 3,2,−3,1,4,−4,−2,−13, 2, -3, 1, 4, -4, -2, -1인 경우를 생각해 보자.

  • 차량 33이 주차 공간 11에 주차한다. 주차료는 300×2=600300 \times 2 = 600이다.
  • 차량 22가 주차 공간 22에 주차한다. 주차료는 100×3=300100 \times 3 = 300이다.
  • 차량 11이 차량 33이 떠난 주차 공간 11에 주차한다. 주차료는 200×2=400200 \times 2 = 400이다.
  • 차량 44가 마지막으로 남은 주차 공간 33에 주차한다. 주차료는 800×5=4,000800 \times 5 = 4{,}000이다.

따라서 총수입은 600+300+400+4,000=5,300600 + 300 + 400 + 4{,}000 = 5{,}300이다.

예제2

  1. 예제 1

    입력
    3 4
    2
    3
    5
    200
    100
    300
    800
    3
    2
    -3
    1
    4
    -4
    -2
    -1
    
    예상 출력
    5300
    
  2. 예제 2

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