Scrambled Polygon
Time Limit: 1000MS   Memory Limit: 30000K
Total Submissions: 7805   Accepted: 3712

Description

A closed polygon is a figure bounded by a finite number of line segments. The intersections of the bounding line segments are called the vertices of the polygon. When one starts at any vertex of a closed polygon and traverses each bounding line segment exactly once, one comes back to the starting vertex.

A closed polygon is called convex if the line segment joining any two points of the polygon lies in the polygon. Figure 1 shows a closed polygon which is convex and one which is not convex. (Informally, a closed polygon is convex if its border doesn't have any "dents".) 

The subject of this problem is a closed convex polygon in the coordinate plane, one of whose vertices is the origin (x = 0, y = 0). Figure 2 shows an example. Such a polygon will have two properties significant for this problem.

The first property is that the vertices of the polygon will be confined to three or fewer of the four quadrants of the coordinate plane. In the example shown in Figure 2, none of the vertices are in the second quadrant (where x < 0, y > 0).

To describe the second property, suppose you "take a trip" around the polygon: start at (0, 0), visit all other vertices exactly once, and arrive at (0, 0). As you visit each vertex (other than (0, 0)), draw the diagonal that connects the current vertex with (0, 0), and calculate the slope of this diagonal. Then, within each quadrant, the slopes of these diagonals will form a decreasing or increasing sequence of numbers, i.e., they will be sorted. Figure 3 illustrates this point. 
 

Input

The input lists the vertices of a closed convex polygon in the plane. The number of lines in the input will be at least three but no more than 50. Each line contains the x and y coordinates of one vertex. Each x and y coordinate is an integer in the range -999..999. The vertex on the first line of the input file will be the origin, i.e., x = 0 and y = 0. Otherwise, the vertices may be in a scrambled order. Except for the origin, no vertex will be on the x-axis or the y-axis. No three vertices are colinear.

Output

The output lists the vertices of the given polygon, one vertex per line. Each vertex from the input appears exactly once in the output. The origin (0,0) is the vertex on the first line of the output. The order of vertices in the output will determine a trip taken along the polygon's border, in the counterclockwise direction. The output format for each vertex is (x,y) as shown below.

Sample Input

0 0
70 -50
60 30
-30 -50
80 20
50 -60
90 -20
-30 -40
-10 -60
90 10

Sample Output

(0,0)
(-30,-40)
(-30,-50)
(-10,-60)
(50,-60)
(70,-50)
(90,-20)
(90,10)
(80,20)
(60,30)
题意:就是给你一些点,起点已经告诉你是(0,0),让输出这个多边形,斜率从小到大表示;
题解:排下序就好了,注意把除变成乘。。。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
using namespace std;
const int INF=0x3f3f3f3f;
#define mem(x,y) memset(x,y,sizeof(x))
#define SI(x) scanf("%d",&x);
struct Node{
int x,y;
friend bool operator < (Node a,Node b){
if(a.y*b.x<b.y*a.x)return true;
else return false;
}
}dt[100010];
int main(){
int k=0;
while(~scanf("%d%d",&dt[k].x,&dt[k].y))k++;
sort(dt+1,dt+k);
for(int i=0;i<k;i++)printf("(%d,%d)\n",dt[i].x,dt[i].y);
return 0;
}

  

  

最新文章

  1. spark应用程序常见问题整理
  2. SQL Server备份脚本
  3. Java回调函数
  4. 【BZOJ-2836】魔法树 树链剖分
  5. 让ASP.NET Web API支持text/plain内容协商
  6. myeclipse10安装findbugs
  7. leaflet 了解
  8. java web session监听销毁跳转
  9. UVa 10780 (质因数分解) Again Prime? No Time.
  10. 域名的a记录转过来他的公网ip
  11. onkeyup 事件会在键盘按键被松开时发生
  12. iOS8:把这些七招APP哭
  13. Docker Daemon 参数最佳实践
  14. WPF中自定义GridLengthAnimation
  15. react 函数子组件(Function ad Child Component)
  16. consul 搭建
  17. 记一次Maven编译IKAnalyzer失败及解决办法
  18. 应用负载均衡之LVS(三):ipvsadm命令
  19. 【python】Python的安装和配置
  20. 潭州课堂25班:Ph201805201 爬虫基础 第二课 fidder (课堂笔记)

热门文章

  1. 浅谈Mybatis(二)
  2. nginx+php的配置
  3. 为IE6-7间接支持:before和:after伪类
  4. jquery取对象数组元素的错误方式
  5. 原生js写的一个当前年份日期星期和时间的显示
  6. android 中获取网络状态、判断3G、2G、wifi网络、判断wifi是否打开、获取本机地址、获取本机串号IMEI整理
  7. VS2010/MFC对话框:一般属性页对话框的创建及显示
  8. String、StringBuffer和StringBuild的区别
  9. 配置vim之插件
  10. ADO.NET知识的运用一(Day 26)