위에서 아래로 놓인 n개의 수평 게이트를 순서대로 지나며 S에서 F로 내려가는 최단 다각 경로를 구해 꺾이는 점들을 출력한다.
어려움9기하그리디분할 정복구현아직 제출이 없습니다시간 제한1초메모리 제한1024 MB클레오파시는 IOI 대표 선발에서 떨어진 뒤 회전 스키 선수가 되기로 했다. 내일은 클레오파시가 처음으로 스키 대회에 나가는 날이다.
대회에서 클레오파시는 출발점에서 도착점까지 내려가면서 기문 n개를 모두 통과해야 한다. 최대한 빨리 내려가려면 이동 경로가 가장 짧아야 한다.
활강 코스는 출발점 S, 도착점 F, 기문 n개로 이루어진다. 기문은 모두 x축과 평행한 선분, 즉 수평 선분이다. y좌표(고도)가 같은 기문은 없다. 출발점은 모든 기문보다 위에 있어서 그 y좌표는 어떤 기문의 y좌표보다도 크다. 도착점은 모든 기문보다 아래에 있고, 출발점보다도 아래에 있다.
S에서 시작해 F에서 끝나고 모든 기문을 위에서 아래 순서대로 만나는 가장 짧은 꺾은선을 구하여라. 꺾은선과 선분이 공통점을 하나라도 가지면 둘이 만난다고 하고, 이 공통점이 선분의 끝점이어도 된다.
첫째 줄에 기문의 개수 n (0≤n≤106)이 주어진다. 둘째 줄에 네 정수 xS,yS,xF,yF가 주어진다. 이는 각각 S=(xS,yS)와 F=(xF,yF)의 좌표이다.
다음 n개 줄에는 세 정수 x1i,x2i,yi가 주어진다. i번째 기문은 (x1i,yi)에서 (x2i,yi)까지의 선분이며, 모든 i에 대해 x1i<x2i이다.
모든 좌표는 −109 이상 109 이하이다. 기문은 위에서 아래 순서로 주어지므로 yS>y1>y2>⋯>yn>yF이다.
가장 짧은 꺾은선은 항상 유일하고, 그 꼭짓점의 좌표는 모두 정수임이 증명되어 있다. 이 꺾은선을 불필요한 꼭짓점 없이 출력한다. 즉 꺾은선의 방향이 바뀌는 꼭짓점만 출력한다.

첫째 줄에 최적 꺾은선의 꼭짓점 개수 k를 출력한다. 이어서 k개 줄에 i번째 꼭짓점의 좌표 xi와 yi를 공백으로 구분해 출력한다. 꼭짓점은 꺾은선의 시작부터 끝까지 차례로 출력해야 하므로 x1=xS, y1=yS, xk=xF, yk=yF이고 y1>y2>⋯>yk를 만족해야 한다.
아래 그림은 첫 번째 예제의 코스와 그 최적 꺾은선이다.
