#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template <typename T> using o_set = tree<T, null_type, std::less<T>, rb_tree_tag, tree_order_statistics_node_update>;
#define int int64_t
#define double long double
#define endl '\n'
#define X first
#define Y second
#define pii pair<double, double>
#define sz(x) (int) x.size()
using namespace std;
const int mod = 1e9 + 7;
const int N = 2e5 + 10;
const int INF = 1e18 + 10;
const double eps = 1e-4;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
void solve() {
int n; cin>>n;
vector<pii> v(n);
for(auto &[a, b] : v) cin>>a>>b;
auto isInside = [&] (pii cur) {
auto getAng = [&] (pii A, pii B, pii C) {
double d = atan2(A.Y - C.Y, A.X - C.X) - atan2(B.Y - C.Y, B.X - C.X);
if(d < -M_PI) d += 2 * M_PI;
if(d > M_PI) d -= 2 * M_PI;
return d;
};
double ret = 0;
for(int i = 0; i < n; i++) ret += getAng(v[i], v[(i + 1) % n], cur);
if(ret < 0) ret = -ret;
return abs(ret - 2 * M_PI) < eps;
};
pii pt; cin>>pt.X>>pt.Y;
cout<<(isInside(pt) ? "YES" : "NO")<<endl;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t = 1; //cin>>t;
for(int tc = 1; tc <= t; tc++) {
// cerr<<"Case "<<tc<<": \n";
solve();
}
}