만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

거스름돈을 기다리는 줄

면접 대비

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

요약
오달러 잔돈 규칙에 따라 두 줄의 도서 판매를 시뮬레이션하고 B열이 가장 길었던 순간의 명단을 출력합니다.
난이도

쉬움10점 중 3점

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

문제

어느 고등학교 미적분 수업에서 학생들은 새 문제집 값으로 각자 $15를 낸다. 선생님은 처음에 현금이 한 장도 없다. 학생은 두 종류뿐이다. $5짜리 한 장과 $10짜리 한 장을 가진 학생은 정확히 $15를 낸다. $20짜리 한 장만 가진 학생은 거스름돈으로 $5를 받아야 한다.

학생들은 A 줄에 서서 앞에서부터 문제집을 산다. 거스름돈을 기다리는 학생이 서는 두 번째 줄이 B 줄이고, 처음에는 비어 있다.

판매는 다음 규칙을 반복한다.

  1. 선생님에게 $5 지폐가 있고 B 줄에 학생이 있으면, B 줄 맨 앞 학생에게 문제집을 팔고 $5를 거슬러 준다. 선생님은 $20를 받고 $5 한 장을 내준다.
  2. 그렇지 않으면 A 줄 맨 앞 학생을 처리한다. 그 학생이 $15를 정확히 내면 문제집을 팔고, 선생님은 $5 한 장과 $10 한 장을 받는다. $20짜리만 가진 학생이면 선생님에게 $5 지폐가 있을 때만 문제집을 팔고 $5를 거슬러 준다. $5 지폐가 없으면 그 학생은 B 줄 맨 뒤로 간다.
  3. A 줄이 비었고 B 줄 맨 앞 학생에게 거슬러 줄 $5 지폐도 없으면 판매가 끝난다. $5 지폐가 모자라서 B 줄에 남은 학생은 문제집을 사지 못한다.

B 줄이 가장 길었던 순간에 B 줄에 서 있던 학생의 이름을 구한다.

입력

첫 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 학생 수 n으로 시작하고, 이어서 n개의 줄에 학생의 이름과 그 학생이 내는 금액이 주어진다. 금액은 15 또는 20이다. 15는 $5 한 장과 $10 한 장을, 20은 $20 한 장을 뜻한다.

이름은 공백이 없는 문자열이고, 한 테스트 케이스 안에서 서로 다르다. n은 100 이하, T는 100 이하다. 입력의 모든 값은 공백과 줄바꿈으로 구분되며, 테스트 케이스 사이에 빈 줄이 들어갈 수 있다.

출력

각 테스트 케이스마다 한 줄씩 출력한다. B 줄이 가장 길었던 순간에 B 줄에 서 있던 학생의 이름을 앞에서 뒤 순서로, 공백 하나로 구분해 출력한다. 최대 길이에 도달한 순간이 여러 번이면 처음 도달한 순간의 줄 상태를 출력한다. B 줄에 학생이 한 번도 서지 않았다면 Line B stayed empty. 를 출력한다.

예제1

  1. 예제 1

    입력
    3
    
    7
    Alfred 15
    Beth 15
    Calista 20
    Desdemona 20
    Ezekiel 15
    Fred 20
    Georgina 15
    
    11
    Hazel 20
    Izzy 15
    James 15
    Karl 20
    Lucinda 20
    Malia 20
    Nicholas 15
    Oscar 20
    Petra 20
    Quantasia 20
    Redd 15
    
    8
    Sasha 20
    Tabitha 20
    Ursula 20
    Victor 15
    Wanda 15
    Xavier 20
    Yolanda 20
    Zane 15
    
    예상 출력
    Line B stayed empty.
    Malia Oscar Petra Quantasia
    Sasha Tabitha Ursula