A cell phone company is continually building and leasing communication towers. Each tower has a one-way communcation link to a least one other tower. The input to the program is essentially a list of pairs of tower names. Each pair will appear on a single line and will contain distinct names. Some pairs represent one-way communcation links between towers, and other pairs represent queries. Links and queries may be interspersed.
All the communication links of the system are added one link at a time. Here is an example of a link:
A link is terminated by a period.
A query asks if a communcation link is possible from one tower to another by any combination of one-way links. If another link is added to the system later in the input, then the answer to the same query may be different. In the output, a plus sign (+) represents an affirmative answer; a minus sign (-) says there is no such link.
Links are distinguished from queries by ending in a question mark and not a period.
Sample Input and Output
The program should read from the standard input and and write to the standard output. For each query in the input there should be exactly one line of output. If the query is true (there is a communication channel through the network), the output line should begin with a plus sign (+); otherwise with a minus sign (-). The rest of the output line repeats the towers in the query.
For the following input:
Tower_B Tower_C .
Tower_A Tower_C? # A query
Tower_A Tower_D ? # Another query
Tower_D Tower_B ? # A third query
xxxx yyyy? # Unknown tower names
the output should be
+ Tower_A => Tower_C
+ Tower_A => Tower_D
- Tower_D => Tower_B
- xxxx => yyyy
The names of the towers will contain only the characters [a-zA-Z_0-9], in particular they will have no spaces in them. Names will have at least 1 character and no more than 50 characters. Furthermore the capitialization of the names is significant. That is, WestMelbourneTower is not to be considered the same tower as wESTMeLbOuRnEtOwEr. Characters, if any, after the period (.) or question mark (?) on a line are to be ignored. No line will will contain more than 150 characters.