#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
long double dy(long double x1, long double y1, long double x2, long double y2) {
  return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
long double di(long double x, long double y, long double x1, long double y1,
               long double x2, long double y2) {
  long double A = y1 - y2;
  long double B = x2 - x1;
  long double C = -x1 * A - y1 * B;
  long double a = dy(x, y, x1, y1);
  a = a * a;
  long double b = dy(x, y, x2, y2);
  b = b * b;
  long double c = dy(x1, y1, x2, y2);
  c = c * c;
  if (a > b + c) return sqrt(b + 0.0);
  if (b > a + c) return sqrt(a + 0.0);
  long double dis = abs(A * x + B * y + C) / sqrt(0.0 + A * A + B * B);
  return dis;
}
pair<int, int> a[N];
const long double EPS = 1e-6;
int main() {
  int n, x, y;
  long double minR = 1e18;
  long double maxR = -1e18;
  scanf("%d %d %d", &n, &x, &y);
  int lastx, lasty;
  for (int i = 0; i < n; i++) {
    int xx, yy;
    scanf("%d %d", &xx, &yy);
    a[i] = make_pair(xx, yy);
    minR = min(minR, dy(x, y, xx, yy));
    maxR = max(maxR, dy(x, y, xx, yy));
  }
  for (int i = 0; i < n; i++) {
    int j = (i + 1) % n;
    long double dim =
        di(x, y, a[i].first, a[i].second, a[j].first, a[j].second);
    minR = min(minR, dim);
    maxR = max(maxR, dim);
  }
  long double PI = 3.1415926535897932384626433832795;
  long double ans = PI * (maxR * maxR - minR * minR);
  cout.precision(6);
  cout << fixed << ans << endl;
}
