ez_code   1년 전

문제

계산 기하학의 기본 연산은 두 대상이 접촉하는지 확인하는 것입니다. 슈팅 게임을 예로 들면, 우리는 플레이어의 탄환이 표적을 맞혔는지 확인합니다. 탄착점은 2차원 공간의 점, 표적 역시 2차원 공간의 닫힌 영역입니다. 탄착점이 표적 내부에 맞으면 표적을 맞힌 것입니다. 표적의 경계 역시 표적 내부로 간주합니다. 표적이 서로 겹쳐 있을 수 있기 때문에, 탄환이 몇 개의 표적을 맞혔는지 식별하려 합니다. 

(그림 참조)

위 그림은 예시 입력의 (내부가 빈 직사각형과 원 모양) 표적과 (내부가 칠해져 있는) 발사 지점을 표시한 것입니다. 원점 (0,0)은 중앙 근처 작은 내부가 빈 원으로 표시되어 있습니다.

입력

입력은 표적의 수를 나타내는 하나의 정수 1 <= m <= 30으로 시작합니다. 다음 m개의 줄에 단어 rectangle 또는 circle이 주어진 후 표적의 경계에 대한 설명이 주어집니다. 직사각형 표적의 경계는 x1 < x2이고 y1 < y2인 네 정수 x1 y1 x2 y2로 주어집니다. 점 (x1, y1)과 (x2, y2)는 각각 직사각형의 왼쪽 아래 꼭짓점과 오른쪽 위 꼭짓점입니다. 원형 표적의 경계는 세 정수 x y r로 주어집니다. 원의 중점은 (x, y)이며 0 < r <= 1000은 원의 반지름입니다.

표적에 대한 설명 후에 발사한 탄환의 수를 나타내는 정수 1 <= n <= 100이 주어집니다. 다음 n개의 줄에는 탄착점의 좌표를 나타내는 두 정수 x y가 주어집니다. 표적과 탄착점의 모든 x와 y 좌표는 [-1000, 1000] 범위에 있습니다.

출력

n개의 탄환에 대해, 탄환이 맞춘 표적의 총 수를 출력합니다.

BothEarRim   1년 전

번역 오타 있습니다. 입력 설명 첫 줄에

다음 n개의 줄에 단어 rectangle 또는 circle이 주어진 후 ...

다음 m개의 줄에 단어 rectangle 또는 circle이 주어진 후 ...

입니다.

댓글을 작성하려면 로그인해야 합니다.