Dept. of Computer Science and Engineering, Czech Technical University in Prague
Faculty of Mathematics and Physics, Charles University in Prague
Faculty of Electrical Engineering and Computer Science, Technical University of Ostrava
Faculty of Informatics and Information Technologies, Slovak University of Technology
Faculty of Informatics, Masaryk University
Faculty of Management Science and Informatics, University of Zilina
CTU Open Contest 2008
Stock Exchange
exchange.c, exchange.C,, exchange.p
All stock exchanges in the world have been hit very hardly by the crisis. To keep their profit,
they now try to cut down all expenses. Prague Stock Exchange would like to employ new
computer software to run their operations.
Will you help them to develop such a system. Your task is to detect all pairs of buyers and
sellers that are able to make a deal together.
Input Specification
The input contains a description of several issuers.
Each of them begins with a line containing
an integer N, one space, and a code of the stock issuer. After the first one, there are N other
lines, each representing one bid. A bid consists of an agent name, one space character, a word
specifying the bid type in lowercase letters (either “buy"or“sell") another space character,
and a price given as a decimal number with exactly three digits after the decimal point. All buy
bids always specify the maximal price, sell bids list the minimal price for which the agent wants
to sell the stocks.
Every issuer code consist of 1–10 uppercase letters (“A"–“Z"). Agent names have at least 1 and
at most 20 characters and may be composed of both lowercase and uppercase letters. For one
issuer, all agent names are always unique, but the same agents may post bids for several issuers.
The number of bids (N) will never exceed 1000. No price will be higher than 10 000.
The last line of the input contains the string “0 END".
Output Specification
For each issuer, print its code on a separate line. Then, for each agent’s bid (in the same order
they were given in the input), output the name of the agent, a colon (“:"), one space, and a list
of all agents that are potential counter-parties for the issuer in concern, i.e., one of them wants
to buy, the other to sell and the selling price is less or equal to the buying price.
The agent names must be separated by a space and listed in the same order that was used in
the input for that issuer. If there is no matching bid, output the string “NO-ONE"instead.
issuer = vydavatel akci´i, zde ve v´
yznamu jednoho konkr´
etn´iho titulu akcie
Sample Input
OneBuyer buy 10.600
TooExpensive sell 12.000
ThisWillWork sell 10.600
one sell 129.999
two buy 130.000
three buy 131.000
four sell 129.888
seller sell 121.110
toopoor buy 121.109
sellertwo sell 121.111
iamok buy 121.112
Output for Sample Input
OneBuyer: ThisWillWork
TooExpensive: NO-ONE
ThisWillWork: OneBuyer
one: two three
two: one four
three: one four
four: two three
seller: iamok
toopoor: NO-ONE
sellertwo: iamok
iamok: seller sellertwo