#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e16;
const int MOD = 1e9 + 7;
const double PI = atan(1) * 4;
const int N = 1e5 + 10;
long long sqr(long long x) { return x * x; }
pair<int, int> operator-(pair<int, int> a, pair<int, int> b) {
  return pair<int, int>(a.first - b.first, a.second - b.second);
}
long long sqrmodule(pair<int, int> a) { return sqr(a.first) + sqr(a.second); }
long long operator%(pair<int, int> a, pair<int, int> b) {
  return 1LL * a.first * b.second - 1LL * a.second * b.first;
}
pair<int, int> p[N];
int n;
double solve() {
  long long ma = 0;
  double mi = inf;
  p[n + 1] = p[1];
  for (auto i = (1); i <= (n); i++) {
    long long cur = sqrmodule(p[0] - p[i]);
    ma = max(ma, cur);
    mi = min(mi, sqrt(cur));
    long long lena = sqrmodule(p[i] - p[0]), lenb = sqrmodule(p[i + 1] - p[0]),
              lenc = (sqrmodule(p[i] - p[i + 1]));
    if (lena > lenb) swap(lena, lenb);
    if (lena + lenc > lenb) {
      mi = min(mi, abs((p[i] - p[0]) % (p[i + 1] - p[0])) / sqrt(lenc));
    }
  }
  return PI * (ma - mi * mi);
}
int main() {
  scanf("%d", &n);
  for (auto i = (0); i <= (n); i++) scanf("%d%d", &p[i].first, &p[i].second);
  printf("%.12f", solve());
}
