증권 거래소

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

전 세계 증권 거래소가 금융 위기로 큰 타격을 입었다. 거래소들은 이익을 지키기 위해 운영을 자동화하는 새로운 소프트웨어를 도입해 비용을 줄이려 한다.

거래를 성사시킬 수 있는 매수자와 매도자의 모든 짝을 찾아내는 것이 여러분의 과제이다.

입력

입력은 여러 종목(발행자)에 대한 정보로 이루어진다. 각 종목은 정수 $N$, 공백 한 칸, 종목 코드가 적힌 줄로 시작한다. 그 다음 $N$개의 줄에는 각각 하나의 호가가 주어진다.

하나의 호가는 참가자 이름, 공백 한 칸, 호가 종류(소문자 buy 또는 sell), 공백 한 칸, 그리고 소수점 아래가 정확히 세 자리인 가격으로 구성된다. buy 호가는 참가자가 지불할 의향이 있는 최대 가격을, sell 호가는 참가자가 팔고자 하는 최소 가격을 나타낸다.

  • 각 종목 코드는 대문자(AZ) 1~10글자로 이루어진다.
  • 각 참가자 이름은 1~20글자이며 대소문자를 모두 포함할 수 있다.
  • 한 종목 안에서 참가자 이름은 모두 서로 다르지만, 같은 참가자가 서로 다른 종목에 호가를 낼 수는 있다.
  • $1 \le N \le 1000$.
  • 어떤 가격도 $10000$을 넘지 않는다.

입력의 마지막 줄에는 문자열 0 END가 주어진다.

출력

각 종목에 대해 먼저 종목 코드를 한 줄에 출력한다. 그 다음 그 종목의 모든 호가에 대해(입력에 주어진 순서대로) 참가자 이름, 콜론(:), 공백 한 칸, 그리고 그 참가자와 거래가 성립할 수 있는 모든 상대의 목록을 출력한다. 두 참가자 중 한쪽은 매수, 다른 한쪽은 매도이며, 매도 가격이 매수 가격 이하일 때 거래가 성립한다.

상대의 이름은 공백 한 칸으로 구분하며, 그 종목의 입력에 나타난 순서대로 나열한다. 성립하는 호가가 없으면 대신 NO-ONE을 출력한다.