#include <bits/stdc++.h>
using namespace std;
int n;
double x, y, a[100000], b[100000], v, v1, s1, w1, q1, s2;
double s = 3.141592653589793238, q, w, d, mi = 1e30, ma, s3;
int main() {
  cin >> n >> x >> y;
  for (int i = 0; i < n; i++) {
    cin >> a[i] >> b[i];
    mi = min(mi, sqrt((a[i] - x) * (a[i] - x) + (b[i] - y) * (b[i] - y)));
    ma = max(ma, sqrt((a[i] - x) * (a[i] - x) + (b[i] - y) * (b[i] - y)));
  }
  a[n] = a[0];
  b[n] = b[0];
  for (int i = 0; i < n; i++) {
    q = (b[i] - b[i + 1]) / (a[i] - a[i + 1]);
    w = (b[i] - (q * a[i]));
    q1 = -1 / q;
    if (b[i] != b[i + 1] && a[i] != a[i + 1]) {
      w1 = (y - (q1 * x));
      v = (w1 - w) / (q - q1);
      v1 = q * v + w;
    } else if (b[i] == b[i + 1]) {
      v = x;
      v1 = w;
    } else if (a[i] == a[i + 1]) {
      v1 = y;
      v = a[i];
    }
    d = sqrt((x - v) * (x - v) + (y - v1) * (y - v1));
    s2 = (a[i] - a[i + 1]) * (a[i] - a[i + 1]) +
         (b[i] - b[i + 1]) * (b[i] - b[i + 1]);
    s1 = (a[i] - v) * (a[i] - v) + (b[i] - v1) * (b[i] - v1);
    s3 = (a[i + 1] - v) * (a[i + 1] - v) + (b[i + 1] - v1) * (b[i + 1] - v1);
    if (s1 <= s2 && s3 <= s2) mi = min(mi, d);
  }
  ma = ma * ma * s;
  mi = mi * mi * s;
  ma -= mi;
  cout << setprecision(18) << ma << endl;
}
