CF1030B 题解
FurippuWRY · · 题解
先求出此图形四条边的函数解析式。
因为四边都是直线,所以解析式都是一次函数,按照求一次函数解析式的方法做就行了。
如图,设四边形的四个顶点分别为
根据公式,斜率
如果一个点
稍微变换一下,可以得到:
总之,只要这个点的坐标满足上述四个不等式,那么这个点就在四边形里。
Code
#include <bits/stdc++.h>
using namespace std;
int n, d, x, y, k;
int main() {
cin >> n >> d >> k;
while (k--) {
cin >> x >> y;
if (x + y >= d &&
x + y <= 2 * n - d &&
x - y >= -d &&
x - y <= d) cout << "YES\n";
else cout << "NO\n";
}
return 0;
}