#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long double dot(pair<long double, long double> a,
                pair<long double, long double> b) {
  return a.first * b.first + a.second * b.second;
}
pair<long double, long double> dif(pair<long double, long double> a,
                                   pair<long double, long double> b) {
  return make_pair(a.first - b.first, a.second - b.second);
}
long double dist(pair<long double, long double> a,
                 pair<long double, long double> b) {
  return sqrt(dot(dif(a, b), dif(a, b)));
}
long double dd(
    pair<pair<long double, long double>, pair<long double, long double> > v,
    pair<long double, long double> p) {
  pair<long double, long double> a = dif(v.first, v.second);
  pair<long double, long double> b = dif(p, v.second);
  long double cur = dot(b, a);
  if (cur <= 0.) {
    return dist(p, v.second);
  }
  long double l = dot(a, a);
  if (cur >= l) {
    return dist(p, v.first);
  }
  a.first *= cur / l;
  a.second *= cur / l;
  a.first += v.second.first;
  a.second += v.second.second;
  return dist(p, a);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  int n;
  long double px, py;
  cin >> n >> px >> py;
  vector<pair<long double, long double> > a(n);
  for (int i = 0; i < n; i++) cin >> a[i].first >> a[i].second;
  int m = -1, x = -1;
  long double md = LLONG_MAX / 4, xd = LLONG_MIN / 4;
  for (int i = 0; i < n; i++) {
    long double d1 = hypot(a[i].first - px, a[i].second - py);
    long double d2 = dd(make_pair(a[i], a[(i + 1) % n]), make_pair(px, py));
    if (d2 <= md) {
      m = i;
      md = d2;
    }
    if (d1 >= xd) {
      xd = d1;
      x = i;
    }
  }
  assert(m != -1 && x != -1 && xd >= md);
  long double res = acos(-1.0) * (xd * xd - md * md);
  cout << fixed << setprecision(11) << res << '\n';
  return 0;
}
