#include <bits/stdc++.h>
using namespace std;
const int N = 111111;
long long x[N], y[N];
int n;
long long cx, cy;
double det(double x1, double y1, double x2, double y2) {
  return x1 * y2 - x2 * y1;
}
double dot(double x1, double y1, double x2, double y2) {
  return x1 * x2 + y1 * y2;
}
int main() {
  ios::sync_with_stdio(false);
  cout.precision(24);
  cin >> n >> cx >> cy;
  for (int i = 1; i <= n; i++) {
    cin >> x[i] >> y[i];
  }
  double minDist = 1e13, maxDist = 0;
  for (int i = 1; i <= n; i++) {
    double ax = x[i], ay = y[i];
    double bx = x[i % n + 1], by = y[i % n + 1];
    double abx = bx - ax, aby = by - ay;
    double acx = cx - ax, acy = cy - ay;
    double bcx = cx - bx, bcy = cy - by;
    double ds = dot(acx, acy, acx, acy);
    maxDist = max(maxDist, ds);
    minDist = min(minDist, ds);
    double det1 = det(acx, acy, aby, -abx);
    double det2 = det(bcx, bcy, aby, -abx);
    if ((det1 < 0) != (det2 < 0)) {
      ds = pow(det(abx, aby, acx, acy), 2) / (abx * abx + aby * aby);
      minDist = min(minDist, ds);
    }
  }
  double ans = 3.14159265358979323 * (maxDist - minDist);
  cout << ans << "\n";
  return 0;
}
