아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

비행의 즐거움

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

요약
k초 동안 바람 이동량을 합산하고 남은 거리가 속도 제한 안에 들면 매초 일정한 속도로 날아간 위치를 출력합니다.
난이도

쉬움10점 중 2점

유형
구현, 시뮬레이션, 수학
정답자
아직 제출이 없습니다

문제

제이컵은 무선 조종 비행기를 날린다. 오늘은 바람이 강해서 비행 계획을 미리 세워야 한다. 비행하는 동안 매 초의 바람을 알려주는 예보가 있다.

1초 동안 비행기의 대기속도는 길이가 vmaxv_{max} 이하인 어떤 벡터든 될 수 있다. 어느 1초의 대기속도가 (vx,vy)(v_x, v_y)이고 같은 초의 바람이 (wx,wy)(w_x, w_y)이면, 비행기는 그 1초 동안 (vx+wx,vy+wy)(v_x + w_x, v_y + w_y)만큼 이동한다.

제이컵의 연료는 정확히 kk초 분량이다. 그 시간 안에 출발점 SS에서 도착점 FF까지 갈 수 있는지, 갈 수 있다면 매 초가 끝난 시점에 비행기가 어디에 있는지 알고자 한다.

입력

첫째 줄에 출발점과 도착점의 좌표를 나타내는 정수 SxS_x, SyS_y, FxF_x, FyF_y가 주어진다 (−10000≤Sx,Sy,Fx,Fy≤10000-10000 \le S_x, S_y, F_x, F_y \le 10000).

둘째 줄에 바람 기록의 개수 nn, 비행 시간(초) kk, 최대 대기속도 vmaxv_{max}가 주어진다 (1≤n,k,vmax≤100001 \le n, k, v_{max} \le 10000).

다음 nn개 줄에는 각각 정수 tit_i, wxiw_{x_i}, wyiw_{y_i}가 주어진다. 시각 tit_i부터 바람은 매 초 (wxi,wyi)(w_{x_i}, w_{y_i})만큼 분다 (0=t1<t2<⋯<tn<k0 = t_1 < t_2 < \dots < t_n < k, wxi2+wyi2≤vmax\sqrt{w_{x_i}^2 + w_{y_i}^2} \le v_{max}). 시각 jj부터 j+1j + 1까지의 1초 동안 부는 바람은 ti≤jt_i \le j를 만족하는 마지막 기록의 벡터다.

출력

jj번째 초의 바람을 wjw_j, 전체 표류량을 W=w1+w2+⋯+wkW = w_1 + w_2 + \dots + w_k, 비행기가 스스로 메워야 하는 변위를 D=F−S−WD = F - S - W라고 하자.

DD의 길이가 k⋅vmaxk \cdot v_{max}보다 크면 한 줄에 No를 출력한다.

그렇지 않으면 첫째 줄에 Yes를 출력하고, 이어서 비행 계획을 kk줄에 출력한다. 비행 내내 대기속도를 D/kD / k로 일정하게 유지하는 계획을 출력한다. 이 계획에서 ii번째 초가 끝난 시점의 위치는 다음과 같다.

Pi=S+∑j=1iwj+ikDP_i = S + \sum_{j=1}^{i} w_j + \frac{i}{k} D

kk개 줄 중 ii번째 줄에는 PiP_i의 두 좌표를 공백으로 구분해 출력한다. 각 좌표는 소수점 아래 정확히 여섯 자리로 쓴다. 어떤 좌표가 10−610^{-6}의 배수 두 개의 정확히 중간에 놓이면 큰 쪽으로 올린다.

이 계획은 매 초 길이가 ∣D∣/k|D| / k인 대기속도를 쓰므로, 가능한 계획이 하나라도 있으면 이 계획도 속도 제한을 지킨다.

예제2

  1. 예제 1

    입력
    1 1 7 4
    2 3 10
    0 1 2
    2 2 0
    
    예상 출력
    Yes
    2.666667 2.666667
    4.333333 4.333333
    7.000000 4.000000
    
  2. 예제 2

    입력
    0 0 4 4
    2 2 3
    0 1 1
    1 1 1
    
    예상 출력
    Yes
    2.000000 2.000000
    4.000000 4.000000