본문 바로가기
백준알고리즘/기하 1

(Python/🥈4)백준 알고리즘1358번: 하키

by windy7271 2022. 5. 30.
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

풀이:

import sys

w, h, x, y, p = map(int, input().split())               

def get(x1, y1, x2, y2):
    return ((x2-x1)**2)+((y2-y1)**2)**0.5

ans = 0
for i in range(p):
    a, b = map(int,input().split())
    if x <= a <= x+w and y <= b <= y+h:     # 직사각형 안일떄
        ans += 1
        continue

    r = h/2                                # 왼쪽 원 오른쪽 원 
    if get(x, y+r, a, b) <= r or get(x+w, y+r, a, b) <= r:
        ans += 1

print(ans)

점과점사이의 거리 구하는 공식 사용

반응형

댓글