Canadian Computing Competition: 2008 Stage 2, Day 1, Problem 2
It is easy to get lost in Kitchener-Waterloo. Many streets that are mostly parallel actually intersect, sometimes multiple times. The best-known example is King and Weber Streets. Other examples include Westmount and Fischer-Hallman, University and Erb, and Queen and Highland.
Navigation is easier in cities that respect the "Manhattan Assumption": all streets are straight lines in a Euclidean plane, and any two streets are either parallel or perpendicular to each other. Visitors to Manhattan are cautioned that even Manhattan itself does not fully satisfy this assumption.
The input to your program will be a sequence of observations followed by a sequence of queries for a particular city. An observation asserts either that two streets are parallel, or that they intersect. A query asks whether two streets are parallel, or whether they intersect, provided the city satisfies the Manhattan Assumption.
Input Specification
The first line of input contains two integers and . Each of the following lines contains an observation. Each observation consists of three words separated by spaces: the two street names, and either the word parallel or the word intersect. Each street name is a sequence of no more than uppercase or lowercase letters. The observations are followed by queries, each on a separate line. A query consists of two street names separated by a space.
Output Specification
If it is impossible for the city to conform to both the Manhattan
Assumption and the specified observations, output a single line
containing the word Waterloo
. Otherwise, output lines containing the
answers to the queries. Each answer should be one of the following
three words: parallel
, intersect
, unknown
. If the two
streets queried are parallel in every city satisfying the given
observations and the Manhattan Assumption, the output should be
parallel
. If they are perpendicular in every such city, the output
should be intersect
. If they are parallel in some such city and
perpendicular in another such city, the output should be unknown
.
Sample Input 1
3 3
fourthstreet fifthstreet parallel
fifthstreet sixthstreet parallel
fourthavenue fifthstreet intersect
sixthstreet fourthstreet
sixthstreet fourthavenue
sixthstreet King
Sample Output 1
parallel
intersect
unknown
Sample Input 2
2 1
King Weber parallel
King Weber intersect
King Weber
Sample Output 2
Waterloo
Grading
You can assume that of the test cases will have . All test cases will have .
Comments
I typed unknown as unknow. Then I debug for a long time don't know where I did wrong. ಥ_ಥ
Note that when the question states "If it is impossible for the city to conform to both the Manhattan Assumption and the specified observations, output a single line containing the word Waterloo", it means to not answer any queries at all and just output
Waterloo
.Also, street names in the queries are not guaranteed to be contained in the given set of edges.