#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1);
int n, x0z, y0z;
double xx[100001], yy[100001];
double rmax, rmin;
double dist(double x, double y) { return sqrt(x * x + y * y); }
double cal(int X1, int Y1, int X2, int Y2) {
  if (Y1 == Y2) {
    if (X1 > 0 && X2 > 0 || X2 < 0 && X1 < 0) return 1e15;
    return abs(Y1);
  }
  if (X1 == X2) {
    if (Y1 > 0 && Y2 > 0 || Y2 < 0 && Y1 < 0) return 1e15;
    return abs(X1);
  }
  double k = (Y1 - Y2) * 1.0 / (X1 - X2);
  double b = Y1 - k * X1;
  double x = -b / (k + 1.0 / k);
  if (x < X1 && x < X2) return 1e15;
  if (x > X1 && x > X2) return 1e15;
  return dist(x, k * x + b);
}
int main() {
  scanf("%d%d%d", &n, &x0z, &y0z);
  rmax = 0;
  rmin = 1e15;
  for (int i = 1; i <= n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    xx[i] = x;
    yy[i] = y;
    double nowdist = dist(x - x0z, y - y0z);
    rmax = max(rmax, nowdist);
    rmin = min(rmin, nowdist);
  }
  for (int i = 1; i <= n; i++) {
    int now = (i - 2 + n) % n + 1;
    double nowans = cal(xx[now] - x0z, yy[now] - y0z, xx[i] - x0z, yy[i] - y0z);
    rmin = min(rmin, nowans);
  }
  double ans = rmax * rmax * pi - rmin * rmin * pi;
  printf("%.18lf\n", ans);
  return 0;
}
