#include <bits/stdc++.h>
long double pi = acos(-1.0);
using namespace std;
long double dist(long long x1, long long y1, long long x2, long long y2) {
  return sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
}
long double dist2(long long x, long long y, pair<long long, long long> p1,
                  pair<long long, long long> p2) {
  return 0;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  long long x, y;
  cin >> x >> y;
  long double mn = 1e18, mx = -1e18;
  vector<pair<long long, long long>> xy;
  for (long long(i) = 0; (i) < n; (i)++) {
    long long xx, yy;
    cin >> xx >> yy;
    xx -= x;
    yy -= y;
    mx = max(mx, dist(0, 0, xx, yy));
    xy.push_back({xx, yy});
  }
  x = 0, y = 0;
  for (long long(i) = 0; (i) < n; (i)++) {
    pair<long long, long long> p1 = xy[i];
    pair<long long, long long> p2 = xy[(i + 1) % n];
    long double a = dist(p1.first, p1.second, p2.first, p2.second);
    long double b = dist(x, y, p1.first, p1.second);
    long double c = dist(x, y, p2.first, p2.second);
    pair<long long, long long> v1 =
        make_pair(p1.first - p2.first, p1.second - p2.second);
    pair<long long, long long> v2 = make_pair(p2.first, p2.second);
    pair<long long, long long> v3 = make_pair(p1.first, p1.second);
    long double alpha1 =
        acos((v2.first * v1.first + v2.second * v1.second) / (c * a));
    v1.first *= -1;
    v1.second *= -1;
    long double alpha2 =
        acos((v3.first * v1.first + v3.second * v1.second) / (b * a));
    int q1 = 1, q2 = 1;
    if (alpha1 > pi / 2.0) {
      q1 = -1;
    }
    if (alpha2 > pi / 2.0) {
      q2 = -1;
    }
    bool ok1 = q1 * q2 > 0;
    mn = min({mn, b, c});
    if (ok1) {
      if (b > c) swap(b, c);
      long double pp = (a + b + c) / 2.0;
      long double s = sqrt(pp * (pp - a) * (pp - b) * (pp - c));
      long double h = 2 * s / a;
      mn = min(mn, h);
    }
  }
  cout << setprecision(20) << fixed << pi * (mx * mx - mn * mn);
  return 0;
}
