#include <bits/stdc++.h>
using namespace std;
struct POINT {
  double x, y;
  double dis;
} xx[2000001], ind;
int n;
double x0, y666, x, y, ans, mii = 1e50, maxi;
double sqr(double k) { return k * k; }
double times(double x1, double y1, double x2, double y2) {
  return fabs(x2 * y1 - x1 * y2) / 2.0;
}
int main() {
  cin >> n;
  cin >> x0 >> y666;
  for (int i = 1; i <= n; i++) {
    scanf("%lf %lf", &x, &y);
    xx[i].x = x;
    xx[i].y = y;
    xx[i].dis = sqrt(sqr(x - x0) + sqr(y - y666));
    mii = min(mii, xx[i].dis);
    maxi = max(maxi, xx[i].dis);
  }
  xx[n + 1] = xx[1];
  for (int i = 1; i <= n; i++) {
    double x1 = xx[i].x, x2 = xx[i + 1].x, y1 = xx[i].y, y2 = xx[i + 1].y;
    double d1 = xx[i].dis, d2 = xx[i + 1].dis;
    if (d1 < d2) swap(d1, d2);
    double d = sqrt(sqr(x1 - x2) + sqr(y1 - y2));
    if (sqr(d1) > sqr(d2) + sqr(d) + 1e-8) continue;
    double h = times(x1 - x0, y1 - y666, x2 - x0, y2 - y666) / d * 2.0;
    mii = min(mii, h);
    maxi = max(maxi, h);
  }
  ans = (acos(-1) * sqr(maxi) - acos(-1) * sqr(mii));
  printf("%.12lf", ans);
}
