#include <bits/stdc++.h>
using namespace std;
const int N = 1000004;
double x[N], y[N];
int main() {
  double pi = 3.141592653589793238462643383279;
  int n;
  double a, b;
  scanf("%d %lf %lf", &n, &a, &b);
  double u = 0.0, v = 1000000000000.0;
  for (int i = 0; i < n; ++i) scanf("%lf %lf", &x[i], &y[i]);
  double m, f;
  for (int i = 0; i < n; ++i) {
    if ((x[i] - a) * (x[i] - a) + (y[i] - b) * (y[i] - b) > u)
      u = (x[i] - a) * (x[i] - a) + (y[i] - b) * (y[i] - b);
    int l = i, r = (i + 1) % n;
    if (x[l] != x[r]) {
      m = (y[r] - y[l]) / (x[r] - x[l]);
      f = ((m * (a - x[l]) + y[l] - b) * (m * (a - x[l]) + y[l] - b)) /
          (m * m + 1);
      if ((m * (y[r] - b) + (x[r] - a)) * (m * (y[l] - b) + (x[l] - a)) < 0)
        v = min(v, f);
      else
        v = min(v, min(((x[i] - a) * (x[i] - a) + (y[i] - b) * (y[i] - b)),
                       ((x[r] - a) * (x[r] - a) + (y[r] - b) * (y[r] - b))));
    } else {
      f = (x[l] - a) * (x[l] - a);
      v = min(v, f);
    }
  }
  u = pi * (u - v);
  printf("%0.12f\n", u);
  return 0;
}
