#include <bits/stdc++.h>
using namespace std;
double shortestDisSq(double x1, double y1, double x2, double y2, double x,
                     double y) {
  double magSq = pow(abs(x2 - x1), 2) + pow(abs(y2 - y1), 2);
  double proj = ((x - x1) * (x2 - x1) + (y - y1) * (y2 - y1)) / magSq;
  if (proj > 1) proj = 1;
  if (proj < 0) proj = 0;
  return pow(abs((x1 + proj * (x2 - x1)) - x), 2) +
         pow(abs((y1 + proj * (y2 - y1)) - y), 2);
}
int main() {
  int n;
  double x, y;
  cin >> n >> x >> y;
  double p, q;
  double op, oq, ip, iq;
  const double PI = 3.141592653589793238463;
  double dis;
  double R2 = 0;
  double r2 = 100000000000000;
  for (int i = 0; i < n; i++) {
    cin >> p >> q;
    if (i == 0) {
      ip = p;
      iq = q;
    }
    if (i > 0) r2 = min(r2, shortestDisSq(p, q, op, oq, x, y));
    if (i == n - 1) r2 = min(r2, shortestDisSq(ip, iq, p, q, x, y));
    op = p;
    oq = q;
    dis = pow(abs(x - p), 2) + pow(abs(y - q), 2);
    R2 = max(R2, dis);
  }
  double res = PI * (R2 - r2);
  printf("%.8lf\n", res);
  return 0;
}
