#include <bits/stdc++.h>
using namespace std;
pair<double, double> operator-(const pair<double, double> &a,
                               const pair<double, double> &b) {
  return {a.first - b.first, a.second - b.second};
}
struct garis {
  double first;
  double second;
  double c;
};
double FindDistanceToSegment(double x1, double y1, double x2, double y2,
                             double pointX, double pointY) {
  double diffX = x2 - x1;
  float diffY = y2 - y1;
  if ((diffX == 0) && (diffY == 0)) {
    diffX = pointX - x1;
    diffY = pointY - y1;
    return sqrt(diffX * diffX + diffY * diffY);
  }
  float t = ((pointX - x1) * diffX + (pointY - y1) * diffY) /
            (diffX * diffX + diffY * diffY);
  if (t < 0) {
    diffX = pointX - x1;
    diffY = pointY - y1;
  } else if (t > 1) {
    diffX = pointX - x2;
    diffY = pointY - y2;
  } else {
    diffX = pointX - (x1 + t * diffX);
    diffY = pointY - (y1 + t * diffY);
  }
  return sqrt(diffX * diffX + diffY * diffY);
}
int main() {
  int n;
  double first, second;
  cin >> n >> first >> second;
  vector<pair<double, double> > v;
  for (int i = 0; i < n; i++) {
    double a, b;
    cin >> a >> b;
    v.push_back(make_pair(a, b));
  }
  double kecil = 1e13;
  double besar = -1e13;
  for (int i = 0; i < v.size(); i++) {
    pair<double, double> ini = make_pair(first, second) - v[i];
    double jarak = ini.first * ini.first + ini.second * ini.second;
    jarak = sqrt(jarak);
    if (jarak < kecil) {
      kecil = jarak;
    }
    if (jarak > besar) {
      besar = jarak;
    }
  }
  vector<struct garis> g;
  for (int i = 0; i < v.size() - 1; i++) {
    double jarak =
        FindDistanceToSegment(v[i].first, v[i].second, v[i + 1].first,
                              v[i + 1].second, first, second);
    if (jarak < kecil) {
      kecil = jarak;
    }
  }
  double jarak =
      FindDistanceToSegment(v[v.size() - 1].first, v[v.size() - 1].second,
                            v[0].first, v[0].second, first, second);
  if (jarak < kecil) {
    kecil = jarak;
  }
  double luas = acos(-1) * (besar * besar - kecil * kecil);
  printf("%.6lf\n", luas);
}
