아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

항공편 예약

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

요약
항공편의 예약 좌석 수를 읽고, 예약과 취소 요청을 처리하되 좌석 수가 0에서 68을 벗어나게 하는 요청은 무시한 뒤 최종 예약 좌석 수를 출력한다.
난이도

쉬움10점 중 2점

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

문제

Air NZ(에어 뉴질랜드(Air New Zealand)와 혼동하지 마세요)는 뉴질랜드의 여러 중소 도시를 잇는 항공편을 운항합니다. 이 항공사는 좌석이 68개인 Aerospatiale ATR72 기종을 여러 대 보유하고 있습니다. 이 항공사의 방침상 승객은 반드시 특정 항공편을 예약해야 하며, 예약한 뒤 탑승하지 않으면 요금을 돌려받지 못합니다. 따라서 다른 항공사와 달리 초과 예약(overbooking)을 할 필요가 없으며, 한 항공편에 대해 최대 68개의 좌석 예약만 받을 수 있습니다.

입력

입력은 하나 이상의 시나리오로 구성됩니다. 각 시나리오는 항공편 번호와 현재 예약된 좌석 수 nn (0≤n≤680 \le n \le 68)으로 시작합니다. 항공편 번호는 대문자 AZ 뒤에 숫자 3개가 붙는 형식이며, 그 뒤에 공백 하나가 옵니다.

이어서 여러 개의 거래(transaction)가 각각 한 줄에 하나씩 주어집니다.

  • 예약 거래는 대문자 B, 공백, 그리고 예약할 좌석 수를 나타내는 정수 nn (0<n≤680 < n \le 68) 순서로 주어집니다. 이 예약으로 인해 해당 항공편의 예약 좌석 수가 68을 초과하게 되면, 그 거래는 완전히 무시합니다.
  • 취소 거래는 대문자 C, 공백, 그리고 취소할 좌석 수를 나타내는 정수 nn (0<n≤680 < n \le 68) 순서로 주어집니다. nn이 현재 예약된 좌석 수보다 크면, 그 거래는 완전히 무시합니다.

거래 목록은 X 0(사이에 공백) 한 줄로 끝나며, 이 줄은 처리하지 않습니다. # 0(사이에 공백) 한 줄은 입력의 끝을 나타냅니다.

출력

각 항공편마다 한 줄씩 출력합니다. 각 줄에는 항공편 번호, 공백, 그리고 그 항공편의 모든 거래를 처리한 뒤 예약된 좌석 수를 출력합니다.

예제4

  1. 예제 1

    입력
    AZ001 5
    B 10
    B 1
    B 2
    C 1
    B 3
    C 1
    C 4
    B 2
    B 1
    B 1
    B 5
    C 3
    X 0
    AZ002 60
    C 61
    B 9
    X 0
    # 0
    
    예상 출력
    AZ001 21
    AZ002 60
    
  2. 예제 2

    입력
    AZ100 0
    X 0
    # 0
    
    예상 출력
    AZ100 0
    
  3. 예제 3

    입력
    AZ200 60
    B 8
    X 0
    # 0
    
    예상 출력
    AZ200 68
    
  4. 예제 4

    입력
    AZ201 68
    B 1
    X 0
    # 0
    
    예상 출력
    AZ201 68