2169: pg

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

有两个人站在一山脉(二维)的两头,处在同一水平位置。他们常使用一种特别的形式登上该山脉的顶峰。他们约定要保证任何时刻都处在同一水平位置。现在想请你来写一个程序为他们制订行走路线,尽量使路线的步数少。这里的步数不是现实中一般的概念,一步是指他们沿着向上(或向下)方向走的一段路。他们每转一次方向(由向上变为向下或向下变为向上),则步数加一。

输入

第一行只有一个整数n(n<=30)
    
接着有n+1行,每行有两个整数,分别为x,y坐标。每个坐标代表山脉上的一个山峰或山谷。我们用(xi,yi)表示第i个坐标,i=1,……,n+1
    
文件数据满足x1<x2<…<min(y2,y3,…,yn)
    
而且存在一个山峰(xj,yj)1<jmax(y1,…,yj-1,yj+1,…,yn+1)

输出

 输出文件第一行是一个整数m,表示坐标序列的转折点总数。
    
接下来的m行依次为m个行走路线中的转折点。每个转折点用两个坐标表示,第一个坐标表示第一个人的位置,第二个坐标表示第二个人的位置。坐标要求保留两位小数,四个数之间用一个空格隔开。

样例输入 复制

6
0 0
2 2
3 1
7 5
11 1
13 3
16 0

样例输出 复制

6
0 0 16 0
2 2 14 2
3 1 15 1
5 3 13 3
3 1 11 1
7 5 7 5