#include <bits/stdc++.h>
using namespace std;
long long t = 1;
long double dis(pair<long long, long long> x, pair<long long, long long> y) {
  return (x.first - y.first) * (x.first - y.first) +
         (x.second - y.second) * (x.second - y.second);
}
bool check(pair<long long, long long> x, pair<long long, long long> y,
           pair<long long, long long> z) {
  if (x.first == y.first) {
    if ((x.second - z.second) * (y.second - z.second) <= 0)
      return true;
    else
      return false;
  }
  if (x.second == y.second) {
    if ((x.first - z.first) * (y.first - z.first) <= 0)
      return true;
    else
      return false;
  }
  long double m = (x.second - y.second) / (x.first - y.first + 0.0);
  long double m1 = -1 / (m);
  if ((m1 * (x.first - z.first) - x.second + z.second) *
          (m1 * (y.first - z.first) - y.second + z.second) <=
      0)
    return true;
  else
    return false;
}
long double shorestdis(pair<long long, long long> x,
                       pair<long long, long long> y,
                       pair<long long, long long> z) {
  if (check(x, y, z) == false) {
    return min(dis(x, z), dis(y, z));
  }
  if (x.first == y.first) {
    return (z.first - x.first) * (z.first - x.first);
  } else {
    long double m = (x.second - y.second) / (x.first - y.first + 0.0);
    long double d1 = m * z.first - z.second - m * x.first + x.second;
    d1 = d1 * d1;
    long double d2 = m * m + 1;
    return d1 / (d2 + 0.0);
  }
}
void solve() {
  long long n, x, y;
  pair<long long, long long> z;
  vector<pair<long long, long long> > vv;
  cin >> n >> z.first >> z.second;
  for (long long i = 1; i < n + 1; i += 1) {
    cin >> x >> y;
    vv.push_back(make_pair(x, y));
  }
  long double r = 1e18, R = 0;
  for (long long i = 0; i < n; i += 1) {
    pair<long long, long long> x, y;
    x = vv[i];
    y = vv[(i + 1) % n];
    r = min(r, shorestdis(x, y, z));
    R = max(R, dis(x, z));
  }
  cout << setprecision(20) << 3.14159265358979323846 * (R - r);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  while (t--) solve();
  return 0;
}
