#334
Unrated
레이저와 거울
원문: English
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

충남대학교 알고리즘 동아리원인 승우는 캠퍼스에서 레이저 공연을 준비하고 있다. 레이저 장비가 매우 무겁기 때문에, 승우는 레이저가 처음 설치된 위치에서 다른 곳으로 옮길 수 없다. 승우의 목표는 레이저 빛을 반대편에 있는 학생회관까지 보내는 것이다. 레이저와 학생회관의 위치는 모두 2차원 평면상의 점으로 나타낼 수 있다. 승우는 처음에 레이저가 수평 또는 수직 방향(xx축 또는 yy축에 평행한 방향)으로 빛을 내보내도록 설정할 수 있다. 그 후, 여러 개의 거울에 이 빛을 반사시켜 학생회관까지 유도하려고 한다.

캠퍼스에는 NN개의 기둥이 있으며 (1N1000001 \le N \le 100\,000), 각 기둥의 위치는 서로 다르며 레이저나 학생회관의 위치와도 겹치지 않는다. 승우는 기둥에 거울을 설치하거나 설치하지 않을 수 있다. 거울을 설치하지 않은 기둥은 레이저 빛이 방향을 바꾸지 않고 그대로 통과한다. 기둥에 거울을 설치할 경우, / 또는 \ 모양으로 대각선 방향으로 설치하여 수평 방향의 빛을 수직으로, 혹은 수직 방향의 빛을 수평으로 바꿀 수 있다.

레이저를 학생회관까지 보내기 위해 필요한 최소 거울의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 다섯 개의 정수 N,xL,yL,xB,yBN, x_L, y_L, x_B, y_B가 공백으로 구분되어 주어진다. 여기서 (xL,yL)(x_L, y_L)은 레이저의 위치, (xB,yB)(x_B, y_B)는 학생회관의 위치이다. (1N1000001 \le N \le 100\,000; 0xL,yL,xB,yB1090 \le x_L, y_L, x_B, y_B \le 10^9)

이어서 NN개의 줄에는 각 기둥의 xx 좌표와 yy 좌표를 나타내는 두 정수가 공백으로 구분되어 주어진다. (0x,y1090 \le x, y \le 10^9)

출력

레이저를 학생회관까지 보내기 위해 필요한 최소 거울의 개수를 출력한다. 만약 학생회관에 도달하는 것이 불가능하다면 -1을 출력한다.

예제 입력 1

4 0 0 7 2
3 2
0 2
1 6
3 0

예제 출력 1

1
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Unrated0명 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.