만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

도면

면접 대비

시간 제한2초메모리 제한1024 MB

요약
A0에 고정된 길이가 정해진 막대들의 끝점이 An에 닿을 수 있는지 판단합니다. 가능하면 모든 관절의 좌표를 출력합니다.
난이도

보통10점 중 5점

유형
기하, 수학, 구현
정답자
아직 제출이 없습니다

문제

평행 차원에서 온 또 다른 적대적인 생명체를 피해 도망친 고든 프리먼은 젠 차원에서 가져온 결정을 연구하던 실험실에 숨었다. 위험이 없다는 것을 확인한 프리먼은 주위를 둘러보다가 복잡한 도면을 초정밀로 그리기 위한 흥미로운 장비를 발견했다. 그러나 이 장비는 일반적인 도면을 그리도록 설계된 것이 아니어서, 구조상 그릴 수 없는 도면도 있다.

실험실 컴퓨터에서 프리먼은 연방 연구 센터의 모든 방 도면을 찾았다. 이 도면을 출력해 두면 생존 확률이 크게 높아졌을 것이다. 프리먼이 무엇을 하려 했는지는 쉽게 짐작할 수 있다.

도면 장치는 다음과 같이 동작한다. 도면 평면의 점 A0A_0에 힌지로 차례로 연결된 nn개의 금속 막대로 이루어진 "팔"이 고정되어 있다. 첫 번째 막대(점 A0A_0에 붙은 막대)의 길이를 l1l_1, 다음 막대의 길이를 l2l_2라 하고, 마지막 막대의 길이 lnl_n까지 같은 방식으로 정한다. 막대 ii와 i+1i+1이 만나는 힌지 점을 AiA_i, 마지막 막대의 끝을 AnA_n이라 한다. AnA_n에는 점을 찍는 도구가 달려 있다. 모든 i<ni < n에 대해 ∣AiAi+1∣=li|A_i A_{i+1}| = l_i가 성립하면, 제어 장치는 힌지 관절을 도면 평면의 AiA_i 위치에 놓을 수 있다.

프리먼은 도면을 그리기 위해 이 장치로 필요한 모든 점을 그릴 수 있는지 알아내야 한다. 또한 각 점마다 모든 AiA_i의 좌표도 알아야 한다. 그를 도와주자.

입력

첫째 줄에는 정수 x0x_0, y0y_0, xnx_n, yny_n(−10000≤x0,y0,xn,yn≤10000-10000 \le x_0, y_0, x_n, y_n \le 10000)이 주어진다. 이는 첫 번째 막대가 붙은 점 A0A_0의 좌표와 그려야 할 점 AnA_n의 좌표이다.

둘째 줄에는 장치의 막대 개수 정수 nn(1≤n≤1031 \le n \le 10^3)이 주어진다. 셋째 줄에는 막대의 길이를 나타내는 정수 nn개 lil_i(1≤li≤10001 \le l_i \le 1000)가 주어진다.

출력

첫째 줄에 점 AnA_n을 그릴 수 있으면 YES, 그렇지 않으면 NO를 출력한다. 그릴 수 있다면 다음 n+1n + 1개의 줄에 ii가 0부터 nn까지인 AiA_i의 좌표를 출력한다. 출력한 점 AiA_i와 Ai+1A_{i+1} 사이의 거리가 lil_i와 10−310^{-3}을 넘게 차이 나지 않으면 정답으로 인정한다.

예제1

  1. 예제 1

    입력
    0 0 6 0
    2
    5 5
    
    예상 출력
    YES
    0.000 0.000
    3.000 4.000
    6.000 0.000