전 세계 증권 거래소가 금융 위기로 큰 타격을 입었다. 거래소들은 이익을 지키기 위해 운영을 자동화하는 새로운 소프트웨어를 도입해 비용을 줄이려 한다.
거래를 성사시킬 수 있는 매수자와 매도자의 모든 짝을 찾아내는 것이 여러분의 과제이다.
입력은 여러 종목(발행자)에 대한 정보로 이루어진다. 각 종목은 정수 $N$, 공백 한 칸, 종목 코드가 적힌 줄로 시작한다. 그 다음 $N$개의 줄에는 각각 하나의 호가가 주어진다.
하나의 호가는 참가자 이름, 공백 한 칸, 호가 종류(소문자 buy 또는 sell), 공백 한 칸, 그리고 소수점 아래가 정확히 세 자리인 가격으로 구성된다. buy 호가는 참가자가 지불할 의향이 있는 최대 가격을, sell 호가는 참가자가 팔고자 하는 최소 가격을 나타낸다.
A–Z) 1~10글자로 이루어진다.입력의 마지막 줄에는 문자열 0 END가 주어진다.
각 종목에 대해 먼저 종목 코드를 한 줄에 출력한다. 그 다음 그 종목의 모든 호가에 대해(입력에 주어진 순서대로) 참가자 이름, 콜론(:), 공백 한 칸, 그리고 그 참가자와 거래가 성립할 수 있는 모든 상대의 목록을 출력한다. 두 참가자 중 한쪽은 매수, 다른 한쪽은 매도이며, 매도 가격이 매수 가격 이하일 때 거래가 성립한다.
상대의 이름은 공백 한 칸으로 구분하며, 그 종목의 입력에 나타난 순서대로 나열한다. 성립하는 호가가 없으면 대신 NO-ONE을 출력한다.