#include <bits/stdc++.h>
using namespace std;
const int maxn = 100100;
const int inf = 1e9;
const long double PI = acos(-1.0);
const long double eps = 1e-9;
int n;
complex<long double> cen, far;
complex<long double> p[maxn];
long double mi = 1e100, ma = 0;
long double cross(complex<long double> p1, complex<long double> p2) {
  return imag(conj(p1) * p2);
}
long double dot(complex<long double> p1, complex<long double> p2) {
  return real(conj(p1) * p2);
}
int sameside(complex<long double> p1, complex<long double> p2,
             complex<long double> q1, complex<long double> q2) {
  long double a = cross(q2 - q1, q1 - p1), b = cross(q2 - q1, q1 - p2);
  return (a > 0) != (b > 0);
}
int calc() {
  int num = 0;
  for (int i = 0; i < n; i++) {
    complex<long double> q = p[(i + 1) % n];
    int res = sameside(p[i], q, cen, far);
    int res2 = sameside(cen, far, p[i], q);
    if (abs(cross(far - cen, cen - p[i])) < eps ||
        abs(cross(far - cen, cen - q)) < eps)
      return 2;
    if (res && res2) num++;
  }
  return num % 2;
}
complex<long double> prj(complex<long double> x, complex<long double> a,
                         complex<long double> b) {
  long double d = dot(x - a, b - a);
  return a + (b - a) * d / norm(b - a);
}
int main() {
  ios_base::sync_with_stdio(0);
  int x, y;
  cin >> n >> x >> y;
  cen = complex<long double>(x, y);
  for (int i = 0; i < n; i++) {
    cin >> x >> y;
    p[i] = complex<long double>(x, y);
    long double d = norm(p[i] - cen);
    mi = min(mi, d);
    ma = max(ma, d);
  }
  for (int i = 0; i < n; i++) {
    complex<long double> q = p[(i + 1) % n];
    if (abs(q - p[i]) < eps) continue;
    complex<long double> r = prj(cen, p[i], q);
    if (abs(r - p[i]) + abs(q - r) - abs(q - p[i]) < eps) {
      mi = min(mi, pow(abs(cross(cen - p[i], q - p[i]) / abs(q - p[i])), 2));
    }
  }
  far = complex<long double>(inf, 0);
  bool in = 0;
  while (!in) {
    int res = calc();
    if (res < 2) {
      in = res;
      break;
    }
    far = complex<long double>(far.real(), far.imag() + 1e-6);
  }
  if (in) {
    cout << fixed << setprecision(10) << PI * ma << '\n';
  } else {
    cout << fixed << setprecision(10) << PI * (ma - mi) << '\n';
  }
}
