커피

면접 대비

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

요약
각 사람이 주문한 커피 가격에 floor(100/P)로 나눈 배달비를 더한 뒤, 5의 배수에서 1만큼 차이 나는 경우에만 반올림해 최종 지불 금액을 구한다.
난이도

쉬움10점 중 3점

유형
해시맵, 구현, 수학, 시뮬레이션
정답자
아직 제출이 없습니다

문제

여러 종류의 커피(라테, 카푸치노, ...)에 대해 각 사이즈(small, medium, large)별 가격이 주어지고, 여러 사람의 주문 목록이 주어진다. 각 사람이 최종적으로 얼마를 지불해야 하는지 구하시오. 한 사람이 지불할 금액은 그 사람이 주문한 커피의 가격에 배달비를 더한 값이다. 각 사람의 배달비는 100$를 사람 수로 나눈 값(내림)이다.

최종 금액은 실제 지불해야 할 금액에서 5의 배수에 가장 가까운 값까지 1$ 이내의 차이를 무시한다. 즉 44$와 46$는 45$로 반올림되고, 47$와 48$는 바뀌지 않는다.

입력

첫 줄에는 테스트 케이스의 수를 나타내는 정수 T가 주어진다.

각 테스트 케이스의 첫 줄에는 두 정수 C와 P (1 ≤ C, P ≤ 100)가 주어진다. C는 커피 종류의 수, P는 사람 수이다.

다음 C개의 줄에는 커피 종류가 주어진다. 각 줄에는 문자열 N과 세 정수 S, M, L (1 ≤ S, M, L ≤ 100)이 주어진다. N은 커피 이름, S, M, L은 각각 small, medium, large 사이즈의 가격이다. 각 커피 종류는 테스트 케이스마다 정확히 한 번씩 나타난다.

다음 P개의 줄에는 주문 목록이 주어진다. 각 줄에는 세 문자열 X, Y, Z가 주어진다. X는 사람 이름, Y는 커피 사이즈(Y ∈ {small, medium, large}), Z는 커피 이름이다. 주어지는 P명의 이름은 모두 다르며, 각 사람은 존재하는 커피 종류를 주문한다.

커피 이름과 사람 이름은 모두 길이가 15 이하인, 영문 대소문자로 이루어진 비어 있지 않은 문자열이다.

출력

각 테스트 케이스마다 P개의 줄을 출력한다. 각 줄에는 사람 이름과 그 사람이 주문에 대해 지불할 총 금액을 공백으로 구분해 출력한다. 사람은 입력에 주어진 순서대로 출력한다.

힌트

배달비는 100$를 3명으로 나눈 것이므로 각 사람은 ⌊100/3⌋ = 33$를 지불한다.

  • "Mohammed"의 음료 가격은 34$, 배달비는 33$이므로 67$가 최종 금액이다.
  • "Mostafa"의 음료 가격은 38$, 배달비는 33$이므로 71$가 되고, 5의 배수에 가장 가까운 값까지 1$를 무시하므로 최종 금액은 70$이다.
  • "Ahmad"의 음료 가격은 26$, 배달비는 33$이므로 59$가 되고, 5의 배수에 가장 가까운 값까지 1$를 무시하므로 최종 금액은 60$이다.

예제1

  1. 예제 1

    입력
    1
    3 3
    cappuccino 28 34 41
    latte 25 31 38
    flatwhite 26 33 47
    Mohammed medium cappuccino
    Mostafa large latte
    Ahmad small flatwhite
    
    예상 출력
    Mohammed 67
    Mostafa 70
    Ahmad 60