Mission Possible
시간 제한1초메모리 제한512 MB
직사각형 안에 서로 겹치지 않는 원형 센서 50개 이하가 있을 때, 시작점에서 목표점까지 직사각형을 벗어나지 않고 어떤 센서 원 내부도 지나지 않는 꺾은선 경로의 경유점을 1000개 이하로 출력한다.
문제
정부 비밀 요원 Allen은 마피아의 작전에 관한 중요한 정보를 알아내기 위해 마피아의 비밀 기지에 잠입하는 임무를 맡았다.
비밀 기지는 직교 좌표계에서 , , , 로 둘러싸인 직사각형이며, 여기서 이고 이다. 비밀 기지 안에는 개의 센서가 설치되어 있다. 번째 센서는 에 위치하고 유효 감지 반경 를 가지며, 로부터 거리가 보다 엄격히 작은 사람을 감지할 수 있다. 즉, 번째 센서는 와 사이의 유클리드 거리가 보다 엄격히 작은 경우에만 위치 에 있는 사람을 감지한다. 또한 임의의 두 센서 와 사이의 유클리드 거리는 보다 엄격히 크다는 것이 알려져 있다. 두 점 와 사이의 유클리드 거리는 이다.
Allen은 위치 에서 잠입 임무를 시작하고, 목표는 에 있다. Allen은 직선으로 매우 빠르게 달릴 수 있지만, 달리는 궤적을 바꾸려면 발을 디뎌야 하므로 추가 시간이 필요하다. 빠른 주자이지만 달리는 동안 어떤 센서에도 감지되지 않아야 한다. 즉, 달리는 궤적 위의 어떤 점도 센서의 유효 감지 반경 안에 엄격히 들어가서는 안 된다.
를 Allen이 달리는 궤적을 바꾸는 위치의 집합이라고 하자. 그러면 를 사용한 Allen의 달리는 궤적은 이며, 여기서 는 Allen이 에서 까지 직선으로 달린다는 것을 의미한다. 집합 는 를 사용했을 때 Allen이 어떤 센서에도 감지되지 않고 비밀 기지 밖으로 나가지 않으면 실행 가능하다. 단, Allen은 비밀 기지 둘레를 따라 달릴 수 있다. 의 원소 의 와 는 정수일 필요가 없으며 실수일 수 있다.
이 문제에서 여러분의 임무는 1000개 이하의 점을 포함하는 실행 가능한 를 하나 찾는 것이다.
입력
입력은 다섯 정수 을 포함하는 한 줄로 시작한다 (; ; ). 이는 각각 센서의 개수와 비밀 기지 를 나타낸다. 다음 줄에는 두 정수 가 주어진다 (; ). 이는 Allen의 시작 위치를 나타낸다. 다음 줄에는 두 정수 가 주어진다 (; ). 이는 Allen의 목표 위치를 나타낸다. 또는 임이 보장된다. 다음 개의 줄 각각에는 세 정수 가 주어진다 (; ; ). 이는 에 위치한 유효 감지 반경 의 센서를 나타낸다. 임의의 두 센서 와 사이의 유클리드 거리는 보다 크다는 것이 보장된다. 또한 와 에서 임의의 센서 까지의 유클리드 거리는 보다 크다는 것이 보장된다.
출력
실행 가능한 의 크기를 나타내는 정수를 한 줄에 출력한다. 다음 개의 줄 각각에는 두 실수를 공백 하나로 구분하여 출력한다. 번째 줄에는 의 번째 점 를 나타내는 를 출력한다. 1000개 이하의 점을 포함하는 실행 가능한 를 아무거나 출력해도 된다.
출력이 부동 소수점이므로 을 사용하여 출력을 검증한다. , 모든 에 대해 , 라고 하자. 그러면 는 1000개 이하의 점을 포함하고 다음 조건을 모두 만족할 때에만 올바른 것으로 간주된다.
- 모든 에 대해 이고 이다 (Allen이 비밀 기지 밖으로 나가지 않는다).
- 모든 에 대해 를 와 을 연결하는 선분이라고 하자 (Allen이 직선으로 달린다). 모든 에 대해 를 위에서 번째 센서의 위치 에 가장 가까운 점이라고 하자. 를 와 사이의 유클리드 거리라고 하자. 그러면 을 만족해야 한다 (Allen이 어떤 센서에도 감지되지 않는다).
- 의 모든 점은 서로 다르다. 두 점 와 는 또는 일 때에만 서로 다른 것으로 간주된다.