#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const double eps = 1e-9;
const int N = 1e5;
complex<double> p[N], c;
double ix, iy;
inline double x(complex<double> a) { return real(a); }
inline double y(complex<double> a) { return imag(a); }
inline double inner(complex<double> a, complex<double> b) {
  return x(conj(a) * b);
}
complex<double> pSproj(complex<double> a, complex<double> b,
                       complex<double> c) {
  if (abs(a - b) < eps) return a;
  double t = inner(c - a, b - a) / norm(b - a);
  if (t < 0) return a;
  if (t > 1) return b;
  return a + t * (b - a);
}
int main() {
  int n;
  ios::sync_with_stdio(false);
  cin >> n >> ix >> iy;
  c = complex<double>(ix, iy);
  for (int i = 0; i < n; i++) {
    cin >> ix >> iy;
    p[i] = complex<double>(ix, iy);
  }
  double big = 0, small = 1e9;
  for (int i = 0; i < n; i++) {
    big = max(big, abs(p[i] - c));
    small = min(small, abs(pSproj(p[i], p[(i + 1) % n], c) - c));
  }
  cout << setprecision(20) << PI * big * big - PI * small * small << endl;
}
