King & Weber
시간 제한1초메모리 제한128 MB
도로 쌍의 평행/교차 관찰이 주어질 때 일관성을 확인하고, 각 질의에 대해 두 도로가 반드시 평행한지, 반드시 교차하는지, 아니면 둘 다 가능한지 답한다.
문제
키치너-워털루(Kitchener-Waterloo)에서는 길을 잃기 쉽습니다. 거의 평행해 보이는 많은 거리가 실제로는 서로 교차하며, 때로는 여러 번 교차하기도 합니다. 가장 잘 알려진 예가 King 가와 Weber 가입니다. 그 밖에도 Westmount와 Fischer-Hallman, University와 Erb, Queen과 Highland 같은 예가 있습니다.
"맨해튼 가정(Manhattan Assumption)"을 따르는 도시에서는 길 찾기가 더 쉽습니다. 이 가정에 따르면 모든 거리는 유클리드 평면 위의 직선이며, 임의의 두 거리는 서로 평행하거나 수직입니다. (맨해튼조차도 이 가정을 완전히 만족하지는 않는다는 점에 유의하세요.)
프로그램의 입력은 특정 도시에 대한 여러 개의 관찰(observation)과 그에 이어지는 여러 개의 질의(query)로 이루어집니다. 각 관찰은 두 거리가 평행하다는 사실 또는 두 거리가 교차한다는 사실을 알려 줍니다. 각 질의는 도시가 맨해튼 가정을 만족한다고 할 때 두 거리가 평행한지 아니면 교차하는지를 묻습니다.
입력
첫째 줄에 두 정수 과 이 주어집니다 ().
이어지는 개의 줄에는 각각 하나의 관찰이 주어집니다. 각 관찰은 공백으로 구분된 세 단어, 즉 두 거리 이름과 단어 parallel(평행) 또는 intersect(교차)로 이루어집니다.
각 거리 이름은 100자 이하의 영문 대문자 또는 소문자로 이루어진 문자열이며, 이름은 대소문자를 구별합니다.
관찰 다음에는 개의 질의가 각각 한 줄에 하나씩 주어집니다. 각 질의는 공백으로 구분된 두 거리 이름으로 이루어집니다.
출력
주어진 관찰과 맨해튼 가정을 도시가 동시에 만족하는 것이 불가능하다면, Waterloo라는 단어가 적힌 한 줄을 출력합니다.
그렇지 않다면 개의 질의에 대한 답을 개의 줄에 출력합니다. 각 답은 다음 세 단어 중 하나입니다: parallel, intersect, unknown.
- 주어진 관찰과 맨해튼 가정을 만족하는 모든 도시에서 두 거리가 항상 평행하다면
parallel을 출력합니다. - 그러한 모든 도시에서 두 거리가 항상 수직(교차)이라면
intersect를 출력합니다. - 어떤 도시에서는 평행하고 다른 도시에서는 수직이라면
unknown을 출력합니다.