#include <bits/stdc++.h>
using namespace std;
int n;
double mn, mx;
double Px, Py;
double x[100002];
double y[100002];
double f(double x1, double y1, double x2, double y2, int cnt) {
  double d1 = 0;
  d1 += (Px - x1) * (Px - x1);
  d1 += (Py - y1) * (Py - y1);
  double d2 = 0;
  d2 += (Px - x2) * (Px - x2);
  d2 += (Py - y2) * (Py - y2);
  if (cnt == 300) return min(d1, d2);
  double dx = (x2 - x1) / 3.0;
  double dy = (y2 - y1) / 3.0;
  if (d1 < d2)
    return f(x1, y1, x2 - dx, y2 - dy, cnt + 1);
  else
    return f(x1 + dx, y1 + dy, x2, y2, cnt + 1);
}
int main() {
  scanf("%d%lf%lf", &n, &Px, &Py);
  for (int i = 0; i < n; i++) {
    scanf("%lf%lf", &x[i], &y[i]);
    double dx = Px - x[i];
    double dy = Py - y[i];
    double dist = dx * dx + dy * dy;
    if (!i) mn = mx = dist;
    mn = min(mn, dist);
    mx = max(mx, dist);
  }
  for (int i = 0; i < n; i++)
    mn = min(mn, f(x[i], y[i], x[(i + 1) % n], y[(i + 1) % n], 0));
  printf("%.10lf\n", M_PI * (mx - mn));
}
