METERAIN - Mưa thiên thạch
Tác giả: ladpro98
Ngôn ngữ: C++
#include <bits/stdc++.h>
#define X first
#define Y second
#define long long long
const int N = 5050;
using namespace std;
typedef pair<int, int> ii;
void operator -= (ii& A, ii B) {A.X -= B.X; A.Y -= B.Y;}
bool CCW(ii &A, ii B, ii C) {C -= B; B -= A; return (long)B.X * C.Y >= (long)B.Y * C.X;}
int n, m;
ii a[N];
int main() {
scanf("%d", &n);
for(int i = 1; i <= n; i++) scanf("%d %d", &a[i].X, &a[i].Y);
scanf("%d", &m);
ii b;
while (m--) {
scanf("%d %d", &b.X, &b.Y);
bool inside = true; a[0] = a[n];
for(int i = 1; i <= n; i++)
if (CCW(a[i], a[i - 1], b)) {
inside = false; break;
}
if (inside) printf("YES\n");
else printf("NO\n");
}
return 0;
}