#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
double sqr(double x) { return x * x; }
int main() {
  long long n, px, py;
  cin >> n >> px >> py;
  long long mx2 = 0;
  double mn2 = (long long)1000 * 1000 * 1000 * 1000 * 100;
  vector<int> x(n);
  vector<int> y(n);
  for (int i = 0; i < n; ++i) {
    cin >> x[i] >> y[i];
    long long r2 = (x[i] - px) * (x[i] - px) + (y[i] - py) * (y[i] - py);
    mx2 = max(mx2, r2);
    mn2 = min<double>(mn2, r2);
  }
  x.push_back(x[0]);
  y.push_back(y[0]);
  for (int i = 0; i < n; ++i) {
    long long x1 = x[i], x2 = x[i + 1], x3 = px;
    long long y1 = y[i], y2 = y[i + 1], y3 = py;
    if ((x1 - x2) * (px - x2) + (y1 - y2) * (py - y2) > 0 &&
        (x2 - x1) * (px - x1) + (y2 - y1) * (py - y1) > 0) {
      long long s = x1 * y2 + x2 * y3 + x3 * y1 - y1 * x2 - y2 * x3 - y3 * x1;
      long long a = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
      mn2 = min((double)mn2, sqr(s) / a);
    }
  }
  printf("%0.8lf\n", PI * (mx2 - mn2));
  return 0;
}
