#include <bits/stdc++.h>
using namespace std;
int m, n;
const double PI = 3.14159265358979;
const int maxn = 100005;
double x[maxn], y[maxn];
double g(int i, int j) { return x[i] * x[j] + y[i] * y[j]; }
int main() {
  ios_base::sync_with_stdio(0);
  cout << fixed << setprecision(12);
  int dx, dy;
  cin >> n >> dx >> dy;
  for (int i = 0, _i = (n); i < _i; ++i) {
    cin >> x[i] >> y[i];
    x[i] -= dx;
    y[i] -= dy;
  }
  x[n] = x[0];
  y[n] = y[0];
  double ma = 0, mi = (1LL << 60);
  for (int i = 0, _i = (n); i < _i; ++i) {
    ma = max(ma, x[i] * x[i] + y[i] * y[i]);
    mi = min(mi, x[i] * x[i] + y[i] * y[i]);
    if (min(g(i, i), g(i + 1, i + 1)) >= g(i, i + 1)) {
      double tmp = (x[i] * y[i + 1] - x[i + 1] * y[i]) /
                   hypot(x[i + 1] - x[i], y[i + 1] - y[i]);
      mi = min(tmp * tmp, mi);
    }
  }
  cout << PI * (ma - mi) << "\n";
  return 0;
}
