간단한 기하 문제
check
함수를 호출한다.check
함수는 각각 직사각형, 왼쪽 반원, 오른쪽 반원 내에 있는지 체크해서 return한다.#include <iostream>
#include <cmath>
using namespace std;
int w, h, x, y;
bool check(int px, int py)
{
if (x <= px && px <= x + w && y <= py && py <= y + h) // 직사각형 내부
{
return 1;
}
else if (pow(x - px, 2) + pow(y + h / 2 - py, 2) <= pow(h / 2, 2))
{
return 1;
}
else if (pow(x + w - px, 2) + pow(y + h / 2 - py, 2) <= pow(h / 2, 2))
{
return 1;
}
return 0;
}
int main(void)
{
int p;
int answer = 0;
cin >> w >> h >> x >> y >> p;
for (int i = 0; i < p; i++)
{
int px, py;
cin >> px >> py;
answer += check(px, py);
}
cout << answer << endl;
return 0;
}