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

첫째 줄에 최적 꺾은선의 꼭짓점 개수 를 출력한다. 이어서 개 줄에 번째 꼭짓점의 좌표 와 를 공백으로 구분해 출력한다. 꼭짓점은 꺾은선의 시작부터 끝까지 차례로 출력해야 하므로 , , , 이고 를 만족해야 한다.
힌트
아래 그림은 첫 번째 예제의 코스와 그 최적 꺾은선이다.
