水题,根本不用凸包,就是一简单的极角排序。
叉乘<0,逆时针。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
const int maxn=55;
struct point
{
double x,y;
} p[maxn];
double cross(point c1,point b1,point a2)
{
return (b1.x-c1.x)*(a2.y-c1.y)-(b1.y-c1.y)*(a2.x-c1.x);
}
bool cmp(point a,point b)
{
point c;
c.x=0;c.y=0;
return cross(c,b,a)<0;
}
int main()
{
int n=0;
while(scanf("%lf %lf",&p[n].x,&p[n].y)!=EOF)
n++;
sort(p+1,p+n, cmp);
for(int i =0; i<n; i++)
cout<<"("<<p[i].x<<","<<p[i].y<<")"<<endl;
return 0;
}