#include <bits/stdc++.h>
using namespace std;
using ull = unsigned long long;
using ll = long long;
const int N = 200005, MOD = 1e9 + 7;
const long double PI = acos(-1.0);
int n, xp, yp, x[N], y[N];
long double dst(int x1, int y1, int x2, int y2) {
  long double dx = abs(x1 - x2);
  long double dy = abs(y1 - y2);
  return sqrtl(dx * dx + dy * dy);
}
long double f(long double cf, int i, int j) {
  long double nx = x[i] + cf * (x[j] - x[i]), ny = y[i] + cf * (y[j] - y[i]);
  return sqrtl((nx - xp) * (nx - xp) + (ny - yp) * (ny - yp));
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0), cout.tie(0);
  cin >> n >> xp >> yp;
  long double mn = (int)2e9, mx = -(int)2e9;
  for (int i = 0; i < n; ++i) {
    cin >> x[i] >> y[i];
    long double d = dst(xp, yp, x[i], y[i]);
    mx = max(mx, d);
  }
  for (int i = 0; i < n; ++i) {
    int j = (i + 1) % n;
    long double l = 0, r = 1, m1, m2;
    for (int k = 0; k < 100; ++k) {
      m1 = l + (r - l) / 3;
      m2 = r - (r - l) / 3;
      if (f(m1, i, j) < f(m2, i, j)) {
        r = m2;
      } else {
        l = m1;
      }
    }
    mn = min(mn, f(.5 * (l + r), i, j));
  }
  cout << fixed << setprecision(9);
  cout << PI * (mx - mn) * (mx + mn) << '\n';
  return 0;
}
