#include <bits/stdc++.h>
using namespace std;
const int N = 10000000;
const double pi = 3.14159265358979;
double x[N], y[N];
double R, r;
int n;
double dis(int i) {
  return sqrt((x[i] - x[0]) * (x[i] - x[0]) + (y[i] - y[0]) * (y[i] - y[0]));
}
void seg_dis(int i) {
  int j = i + 1;
  double d = dis(i);
  R = max(R, d);
  r = min(r, d);
  if (i == n) {
    j = 1;
  }
  double x1 = x[0] - x[i], x2 = x[j] - x[i], y1 = y[0] - y[i], y2 = y[j] - y[i];
  double iner = x1 * x2 + y1 * y2;
  if (iner < 0) {
    return;
  }
  if (iner > x2 * x2 + y2 * y2) {
    return;
  }
  d = abs(x1 * y2 - x2 * y1);
  d /= sqrt(x2 * x2 + y2 * y2);
  r = min(d, r);
}
int main() {
  cin >> n;
  cin >> x[0] >> y[0];
  for (int i = 1; i <= n; i++) {
    cin >> x[i] >> y[i];
  }
  R = -1, r = 10000000000;
  for (int i = 1; i <= n; i++) {
    seg_dis(i);
  }
  cout << fixed << setprecision(20) << (R * R - r * r) * pi;
}
