View Code of Problem 1092

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#define eps 1e-10
using namespace std;

struct point {
    double x,y;
} p[100];

//极角排序
double cross(const point &p1, const point &p2, const point &q1, const point &q2) {
    return (q2.y - q1.y)*(p2.x - p1.x) - (q2.x - q1.x)*(p2.y - p1.y);
}
bool cmp(const point &a, const point &b) {
    point origin;
    origin.x = origin.y = 0;
    return cross(origin,b,origin,a) < 0;
}

int main() {
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    int n=0;
    while(~scanf("%lf%lf",&p[n].x,&p[n].y)) {
        n++;
    }
    sort(p+1,p+n,cmp);
    for (int i=0; i<n; i++) {
        printf("(%.0lf,%.0lf)\n",p[i].x,p[i].y);
    }
    return 0;
}

Double click to view unformatted code.


Back to problem 1092