Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;const double eps = 1e-7;int dcmp(double x) {return x < -eps ? -1 : x > eps;}struct Point {double x, y;Point (){}Point(double x, double y) : x(x), y(y) {}Point operator - (const Point &b) { return Point(x - b.x, y - b.y); }Point operator + (const Point &b) { return Point(x + b.x, y + b.y); }Point operator * (const double &b) { return Point(x * b, y * b); }Point operator / (const double &b) { return Point(x / b, y / b); }Point rot90(int t) { return Point(-y, x) * t; }Point rot(double ang) { return Point(x * cos(ang) - y * sin(ang), x * sin(ang) + y * cos(ang)); }double operator * (const Point &b) { return x * b.y - y * b.x; }double operator % (const Point &b) { return x * b.x + y * b.y; }double len2() { return x * x + y * y; }double len() { return sqrt(x * x + y * y); }bool operator < (const Point &b) const {if (dcmp(x-b.x) != 0) return dcmp(x-b.x) < 0;return dcmp(y-b.y) < 0;}void init() { scanf("%lf %lf", &x, &y); }} tower[111], hull[111], city[111];