#include <bits/stdc++.h>
using namespace std;
const long long N = 1e5 + 10, CNT = 20, INF = 1e17 + 7;
long long t[N], n;
double f(double x1, double y1, double x2, double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
double sqr(double a) { return a * a; }
int main() {
  double minl = INF, maxl = 0, pi = 3.14159265359, qa, qb, la, lb, fa, fb;
  cin >> n >> qa >> qb;
  for (int i = 1; i <= n; i++) {
    double a, b;
    cin >> a >> b;
    if (i == 1) {
      fa = a;
      fb = b;
    }
    minl = min(minl, f(qa, qb, a, b));
    maxl = max(maxl, f(qa, qb, a, b));
    if (i >= 2) {
      double x = lb - b;
      double y = a - la;
      double z = -a * (lb - b) + b * (la - a);
      double t = sqrt(x * x + y * y);
      double len = fabs(x * qa + y * qb + z) / t, len1 = f(qa, qb, a, b),
             len2 = f(qa, qb, la, lb), len3 = f(a, b, la, lb);
      if (sqr(len1) + sqr(len3) >= sqr(len2) &&
          sqr(len2) + sqr(len3) >= sqr(len1))
        minl = min(minl, len);
    }
    la = a;
    lb = b;
  }
  double x = lb - fb;
  double y = fa - la;
  double z = -fa * (lb - fb) + fb * (la - fa);
  double t = sqrt(x * x + y * y);
  double len = fabs(x * qa + y * qb + z) / t, len1 = f(qa, qb, fa, fb),
         len2 = f(qa, qb, la, lb), len3 = f(fa, fb, la, lb);
  if (sqr(len1) + sqr(len3) >= sqr(len2) && sqr(len2) + sqr(len3) >= sqr(len1))
    minl = min(minl, len);
  printf("%.10f", maxl * maxl * pi - minl * minl * pi);
}
