사용자 도구

사이트 도구


ps:problems:boj:6384

Area

ps
링크acmicpc.net/…
출처BOJ
문제 번호6384
문제명Area
레벨골드 3
분류

기하학

시간복잡도O(T*m*logd)
인풋사이즈T<=?, m<=100, d<=100
사용한 언어Python 3.11
제출기록33376KB / 52ms
최고기록44ms
해결날짜2023/04/17

풀이

코드

"""Solution code for "BOJ 6384. Area".

- Problem link: https://www.acmicpc.net/problem/6384
- Solution link: http://www.teferi.net/ps/problems/boj/6384

Tags: [Pick's theorem]
"""

import sys
from teflib import geometry


def main():
    scenario_count = int(sys.stdin.readline())
    for scenario_no in range(1, scenario_count + 1):
        m = int(sys.stdin.readline())
        dx_and_dy = [
            [int(x) for x in sys.stdin.readline().split()] for _ in range(m)
        ]

        px, py = 0, 0
        polygon = [(px := px + dx, py := py + dy) for dx, dy in dx_and_dy]
        interior, boundary = geometry.lattice_point_in_polygon(polygon)
        twice_area = geometry.twice_of_polygon_area(polygon)

        print(f'Scenario #{scenario_no}:')
        print(interior, boundary, twice_area / 2)
        print()


if __name__ == '__main__':
    main()

토론

댓글을 입력하세요:
Y P J Y P
 
ps/problems/boj/6384.txt · 마지막으로 수정됨: 2023/04/17 06:12 저자 teferi