#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, x, y;
  cin >> n >> x >> y;
  long double mi = 0;
  long double ma = 0;
  vector<long double> v1(n + 1, 0);
  vector<long double> v2(n + 1, 0);
  for (int i = 0; i < n; i++) {
    long double a, b;
    cin >> a >> b;
    long double cur = sqrt((a - x) * (a - x) + (b - y) * (b - y));
    if (mi == 0 || mi > cur) {
      mi = cur;
    }
    if (ma == 0 || ma < cur) {
      ma = cur;
    }
    v1[i] = a - x;
    v2[i] = b - y;
  }
  v1[n] = v1[0];
  v2[n] = v2[0];
  for (int i = 1; i <= n; i++) {
    long double x1, y1;
    x1 = v1[i] - v1[i - 1];
    y1 = v2[i] - v2[i - 1];
    if ((x1 * v1[i - 1] + y1 * v2[i - 1]) > 0 ||
        (x1 * v1[i] + y1 * v2[i]) < 0) {
      continue;
    } else {
      if (mi == 0 ||
          mi > abs((v1[i] * v2[i - 1] - v1[i - 1] * v2[i]) /
                   (sqrt((v1[i] - v1[i - 1]) * (v1[i] - v1[i - 1]) +
                         (v2[i] - v2[i - 1]) * (v2[i] - v2[i - 1]))))) {
        mi = abs((v1[i] * v2[i - 1] - v1[i - 1] * v2[i]) /
                 (sqrt((v1[i] - v1[i - 1]) * (v1[i] - v1[i - 1]) +
                       (v2[i] - v2[i - 1]) * (v2[i] - v2[i - 1]))));
      }
    }
  }
  long double res = 3.14159265358979323846 * (ma * ma - mi * mi);
  cout.precision(9);
  cout << res << '\n';
  return 0;
}
