程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> lines-Find the Border

lines-Find the Border

編輯:編程解疑
Find the Border

Description

Closed polyline (with possible self-intersections) partitions a plane into a number of regions. One of the regions is unbounded -- it is an exterior of the polyline. All the bounded regions together with the polyline itself form an interior of the polyline (shaded in the picture below). The border of the interior (bold line in the picture) is a polyline as well. This polyline has the same interior as the original one.
Your task is to find the border of the interior of the given polyline.


To guarantee the uniqueness (up to the starting point) of the polyline representing the border we require that the following conditions are satisfied for it:
it has no self-intersections, although may have self-touchings;
no adjacent vertices of the border coincide;
no adjacent edges of the border are collinear;
when traversing the border, its interior is always to the left of its edges.

Input

The first line of the input file contains an integer number n (3 <= n <= 100) -- the number of vertices in the original polyline. Following n lines contain two integer numbers xi and yi on a line (0 <= xi, yi <= 100) -- coordinates of the vertices. All vertices are different and no vertex lies on an edge between two other vertices. Adjacent edges of the polyline are not collinear.
Output

Write to the output file an integer number m -- the number of vertices of the border. Then write m lines with coordinates of the vertices. Coordinates must be precise up to 4 digits after the decimal point.
Sample Input

10
4 9
9 9
12 4
10 2
9 5
14 10
14 5
10 9
11 4
4 4
Sample Output

13
9.3333 4
10 2
12 4
10.5 6.5
11.5 7.5
14 5
14 10
11.5 7.5
10 9
10.5 6.5
9 9
4 9
4 4

最佳回答:


http://poj.org/problem?id=2164

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved