장보기

면접 대비

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

요약
장바구니 항목마다 대소문자를 무시한 이름으로 상점 항목을 찾아 실제 구매 수량에 대한 클럽 카드 할인액을 더한다.
난이도

쉬움10점 중 3점

유형
해시맵, 문자열, 시뮬레이션
정답자
아직 제출이 없습니다

문제

빈트 서프(Vint Cerf)와 밥 칸(Bob Kahn)은 자신들의 네트워크 사용자들이 궁금한 나머지, 그들 모두를 바비큐 파티에 초대하기로 했습니다. 네트워크의 트래픽 양으로 미루어 볼 때 아주 많은 음식이 필요할 것 같습니다.

식료품점의 재고 목록과 두 사람의 장보기 목록이 주어집니다. 이 식료품점의 회원 카드(club card)를 쓰면 일부 품목을 더 싸게 살 수 있는데, 회원 카드를 사용하여 절약할 수 있는 총 금액을 구하세요.

장보기 목록의 각 품목에 대해, 그 품목을 매장에서 취급한다면 실제로 구매하는 수량 한 개당 (정상가 − 회원가)만큼 절약합니다. 실제 구매 수량은 원하는 수량 mjm_j와 매장 재고 nin_i 중 더 작은 값입니다. 즉, 이 품목에서 절약하는 금액은 min⁡(mj,ni)×(pi−ci)\min(m_j, n_i) \times (p_i - c_i)입니다. 장보기 목록에 있지만 매장에서 취급하지 않는 품목은 살 수 없으므로 절약액에 포함되지 않습니다. 전체 절약액은 모든 품목에서 절약한 금액의 합입니다.

입력

첫 번째 줄에 입력 데이터 집합의 개수 KK가 주어집니다. 이어서 KK개의 데이터 집합이 아래 형식으로 주어집니다.

각 데이터 집합의 첫 번째 줄에는 두 정수 NN과 MM이 주어집니다 (1≤N,M≤1001 \le N, M \le 100). NN은 식료품점에 있는 서로 다른 품목의 수이고, MM은 장보기 목록에 있는 서로 다른 품목의 수입니다.

다음 NN개의 줄에는 각각 식료품점의 품목이 하나씩 주어집니다. 각 줄에는 현재 재고 수량을 나타내는 정수 nin_i, 정상가 pip_i, 회원가 cic_i, 그리고 공백 하나에 이어 품목 이름 sis_i가 이 순서대로 주어집니다. 가격은 $0.00 이상 $99.99 이하이며 항상 소수점 둘째 자리까지 표기됩니다 (예: $3.00). 이름은 대소문자 영문자와 공백을 포함할 수 있습니다.

다음 MM개의 줄에는 각각 장보기 목록의 품목이 하나씩 주어집니다. 각 줄에는 원하는 수량을 나타내는 정수 mjm_j, 그리고 공백 하나에 이어 품목 이름 sjs_j가 주어집니다.

장보기 목록의 품목은 이름이 대소문자를 무시하고 같으면 식료품점의 품목과 같은 것으로 봅니다. 입력에 주어지는 이름에는 앞뒤에 불필요한 공백이 없습니다.

출력

각 데이터 집합에 대해, 먼저 그 집합의 번호 xx를 사용하여 Data Set x:를 한 줄에 출력합니다. 다음 줄에는 회원 카드를 사용하여 절약한 정확한 금액을 앞에 $ 기호를 붙이고 소수점 둘째 자리까지 출력합니다 (쉼표는 넣지 않습니다). 연속한 데이터 집합은 빈 줄 하나로 구분합니다.

예제4

  1. 예제 1

    입력
    1
    2 3
    3 $3.00 $3.00 Mango Sorbet
    2 $6.00 $4.50 TV dinner
    1 Mango Sorbet
    3 tv dinner
    1 nacho cheese
    
    예상 출력
    Data Set 1:
    $3.00
    
  2. 예제 2

    입력
    2
    1 1
    5 $10.00 $8.50 Apple
    2 apple
    2 2
    10 $5.00 $4.00 Bread
    3 $2.00 $1.00 Milk
    4 BREAD
    5 milk
    
    예상 출력
    Data Set 1:
    $3.00
    
    Data Set 2:
    $7.00
    
  3. 예제 3

    입력
    1
    1 1
    5 $2.50 $2.50 Water
    3 water
    
    예상 출력
    Data Set 1:
    $0.00
    
  4. 예제 4

    입력
    1
    1 2
    5 $9.99 $8.88 Cheese
    2 milk
    1 cheese
    
    예상 출력
    Data Set 1:
    $1.11