#include <bits/stdc++.h>
using namespace std;
const int INF = (int)1E9;
const double eps = 1E-9;
class pt2 {
 public:
  double x, y;
  pt2() {}
  pt2(double _x, double _y) {
    x = _x;
    y = _y;
  }
  pt2 vec2(const pt2 &p) { return pt2(p.x - x, p.y - y); }
  double len() { return sqrt(x * x + y * y); }
  double dist(const pt2 &p) {
    double dx = x - p.x, dy = y - p.y;
    return sqrt(dx * dx + dy * dy);
  }
  double sqdist(const pt2 &p) {
    double dx = x - p.x, dy = y - p.y;
    return dx * dx + dy * dy;
  }
  pt2 normalize() {
    double s = sqrt(x * x + y * y);
    return pt2(x / s, y / s);
  }
  double dot(const pt2 &p) { return x * p.x + y * p.y; }
  double cross(const pt2 &p) { return x * p.y - y * p.x; }
  pt2 rot(double th) {
    return pt2(cos(th) * x - sin(th) * y, sin(th) * x + cos(th) * y);
  }
  pt2 operator+(const pt2 &p) { return pt2(x + p.x, y + p.y); }
  pt2 operator-(const pt2 &p) { return pt2(x - p.x, y - p.y); }
  pt2 operator*(const double &t) { return pt2(x * t, y * t); }
  pt2 operator/(const double &t) { return pt2(x / t, y / t); }
} pts[100005];
class seg2 {
 public:
  pt2 a, b;
  seg2(pt2 _a, pt2 _b) {
    a = _a;
    b = _b;
  }
  double len() { return a.dist(b); }
  pt2 project(const pt2 &p) {
    pt2 v(b.x - a.x, b.y - a.y), vp(p.x - a.x, p.y - a.y);
    v = v.normalize();
    double d = vp.dot(v);
    return pt2(a.x + v.x * d, a.y + v.y * d);
  }
  bool onseg(const pt2 &p) {
    return fabs(a.dist(p) + b.dist(p) - len()) <= eps;
  }
};
int N;
double cx, cy;
double dist(double x, double y) {
  double dx = cx - x, dy = cy - y;
  return dx * dx + dy * dy;
}
int main() {
  cin >> N >> cx >> cy;
  double PI = acos(-1.0);
  double ma, mi;
  for (int i = (0); i < (N); i++) {
    double x, y;
    scanf("%lf%lf", &x, &y);
    pts[i] = pt2(x, y);
    double d = dist(x, y);
    if (i == 0) {
      ma = d;
      mi = d;
    } else {
      ma = max(ma, d);
      mi = min(mi, d);
    }
  }
  pt2 C(cx, cy);
  for (int i = (0); i < (N); i++) {
    seg2 seg = seg2(pts[i], pts[(i + 1) % N]);
    pt2 projC = seg.project(C);
    if (seg.onseg(projC)) {
      mi = min(mi, C.sqdist(projC));
    }
  }
  printf("%.12f\n", PI * (ma - mi));
  return 0;
}
