고립된 섬
시간 제한8초메모리 제한1024 MB
울타리 선분으로 나뉜 섬에서 각 구역이 바다까지 가는 데 필요한 최소 물고기 수를 구하고, 이웃한 두 구역의 값이 같은지 판단합니다.
문제
아주 먼 곳의 작은 섬에 노인 몇 명이 세상과 떨어져 살고 있다. 섬 전체는 울타리로 나뉜 땅 조각들로 이루어져 있고, 각 노인은 사방이 울타리로 둘러싸인 땅 한 조각을 소유한다. (모든 울타리 바깥 영역은 바다다.) 주민들은 살아가려면 물고기가 필요하며, 물고기를 잡을 수 있는 곳은 주변 바다뿐이다. 모든 땅이 바다와 맞닿아 있지는 않으므로, 어떤 사람은 물고기를 잡기 전에 다른 사람의 땅을 지나가야 할 수도 있다. 한 번에 울타리 하나만 넘을 수 있고, 울타리의 기둥이나 울타리가 교차하는 지점은 지날 수 없다.
안타깝게도 노인들은 욕심이 많다. 누군가 자기 땅에 들어올 때마다 물고기 한 마리를 요구한다. 다른 사람에게 물고기를 너무 많이 내주고 싶지 않아서, 각 노인은 바다까지 가는 데 내야 하는 물고기 수가 가장 적은 경로를 고른다.
이런 일이 해마다 쌓이면서 노인들 사이에 경쟁심이 생겼다. 각 사람은 바다에 도달하는 데 자기보다 적은 물고기를 내는 다른 모든 사람을 싫어한다. 두 사람은 바다에 도달하는 데 같은 수의 물고기를 내야 할 때만 서로를 좋아한다.

그림 I.1: 처음 세 입력 예의 섬을 그린 것이다. 입력 예 1에서는 모든 사람이 바다에 바로 닿으므로 모두 서로를 좋아한다. 입력 예 2에서는 가운데 사람이 물고기 한 마리를 내야 하는 반면, 이웃들은 바다까지 물고기를 내지 않으므로 서로 좋아하는 이웃 쌍이 없다. 입력 예 3에는 노인 여섯 명이 있고, 그중 일부는 서로 가까운 이웃이다.
자연스럽게 떠오르는 질문은 이것이다. 섬에 이웃(울타리 하나를 사이에 두고 반대편에 땅을 가진 사람)이면서 서로 좋아하는 노인이 있는가? 이 질문에 대해 정반대의 답이 나오는 두 섬은 그림 I.1을 참고하라.
입력
첫 줄에 울타리의 개수를 나타내는 정수 ()이 주어진다. 이어서 개의 줄에 정수 , , , (, )가 주어지며, 이는 기둥과 기둥 사이를 잇는 직선 울타리를 뜻한다.
울타리는 내부에서 교차할 수 있고, 세 개 이상의 울타리가 같은 지점에서 만날 수도 있다. 두 울타리는 많아야 한 점에서만 만난다. 또한 울타리 하나를 넘으면 항상 다른 영역에 도달한다. 모든 영역은 하나의 섬을 이루며, 어떤 영역에서든 다른 모든 영역으로 갈 수 있다.
출력
이웃이면서 서로 좋아하는 노인 쌍이 있으면 "yes"를, 없으면 "no"를 출력한다.