No Rules Rules

하키 (feat. 백준, 1358번) 본문

생활/코테

하키 (feat. 백준, 1358번)

개발하는 완두콩 2022. 8. 4. 13:17
728x90
반응형

하키
https://www.acmicpc.net/problem/1358

 

1358번: 하키

첫째 줄에 수 W H X Y P가 주어진다. P는 선수의 수이다. W와 H는 100보다 작거나 같은 자연수이고, H는 짝수이다. X와 Y는 절댓값이 100보다 작거나 같은 정수이다. P는 최대 50인 자연수이다. 둘째 줄부

www.acmicpc.net

반응형
// woohyeon.kim
// https://www.acmicpc.net/problem/1358
#include <iostream>
#include <cmath>
using namespace std;
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
	register int W, H, X, Y, P, R, ans = 0;
	cin >> W >> H >> X >> Y >> P;
	R = H / 2;
	for (register int p = 0, x, y; p < P; ++p) {
		cin >> x >> y;
		if (X <= x && x <= X + W && Y <= y && y <= Y + H)
			++ans;
		else if (x < X) {
			double r = sqrt((X - x) * (X - x) + (Y + R - y) * (Y + R - y));
			if (r <= R)
				++ans;
		}
		else if (x > X + W) {
			double r = sqrt((x - (X + W)) * (x - (X + W)) + (Y + R - y) * (Y + R - y));
			if (r <= R)
				++ans;
		}
	}
	cout << ans << "\n";
	return 0;
}
// *&)*@*
  1. 사각형 내에 들어온다면 링크 안에 있는 선수입니다.
  2. 좌측 반원 기준, (X, Y + R) ~ (선수의 x, 선수의 y) 의 반지름을 구해봅니다. 해당 반지름이 R보다 작거나 같다면 링크 안에 있는 선수입니다.
  3. 우측 반원 기준, (X + W, Y + R) ~ (선수의 x, 선수의 y) 의 반지름을 구해봅니다. 해당 반지름이 R보다 작거나 같다면 링크 안에 있는 선수입니다.
728x90
반응형

'생활 > 코테' 카테고리의 다른 글

약수 (feat. 백준, 1037번)  (0) 2022.08.04
배수와 약수 (feat. 백준, 5086번)  (0) 2022.08.04
터렛 (feat. 백준, 1002번)  (0) 2022.08.04
택시 기하학 (feat. 백준, 3053번)  (0) 2022.08.03
참외밭 (feat. 백준, 2477번)  (0) 2022.08.03
Comments