#include <bits/stdc++.h>
using namespace std;
double x[100001], y[100001], d[100001], r = 1e12, R = 0.0;
const double pi = acos(-1.0), eps = 1e-7;
void updt(double a) {
  R = max(R, a);
  r = min(r, a);
}
int main() {
  int n, i;
  double sx, sy;
  scanf("%d", &n);
  cin >> sx >> sy;
  for (i = 0; i < n; ++i) {
    cin >> x[i] >> y[i];
    x[i] -= sx;
    y[i] -= sy;
    updt(d[i] = ((x[i]) * (x[i])) + ((y[i]) * (y[i])));
  }
  x[n] = x[0];
  y[n] = y[0];
  d[n] = d[0];
  for (i = 0; i < n; ++i) {
    double dx = x[i] - x[i + 1], dy = y[i] - y[i + 1];
    double dist = ((dx) * (dx)) + ((dy) * (dy));
    double area = fabs(x[i] * y[i + 1] - x[i + 1] * y[i]);
    double h = ((area / sqrt(dist)) * (area / sqrt(dist)));
    if (fabs(sqrt(max(0.0, d[i] - h)) + sqrt(max(0.0, d[i + 1] - h)) -
             sqrt(dist)) < eps)
      updt(h);
  }
  cout << setprecision(15) << (R - r) * pi << '\n';
  return 0;
}
