아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

대회 피자 자르기

시간 제한1초메모리 제한256 MB

요약
중심에서 방사형으로 같은 크기로 나누어 각 조각이 같은 개수의 토핑을 포함하고 절단선이 토핑을 지나지 않는 최대 조각 수를 구합니다.
난이도

보통10점 중 6점

유형
기하, 완전 탐색, 정렬
정답자
아직 제출이 없습니다

문제

2007년 가을에는 "프로그래밍 대회 프로그래밍 대회"가 열렸다. 참가자가 풀어야 하는 문제가 프로그래밍 대회를 운영하는 문제였다. 대회 운영에서 가장 중요한 것은 피자다.

피자는 반지름이 1인 원이고, 그 위에 콩고기 조각이 올려져 있다. 아직 자르지 않은 이 피자를 여러 조각으로 나눠야 한다. 지켜야 할 조건은 두 가지다. 모든 조각의 크기가 같아야 하고, 각 조각에 올라간 콩고기 개수도 모두 같아야 한다.

자르는 방법에도 제약이 있다. 칼질은 원의 중심에서 원둘레까지 이어지는 직선을 따라서만 할 수 있다. 또 콩고기를 지나가도록 자를 수는 없고, 콩고기는 언제나 자른 선의 한쪽에 온전히 놓여야 한다.

콩고기의 위치가 주어질 때, 두 조건을 모두 만족하면서 피자를 나눌 수 있는 조각 수의 최댓값을 구하는 프로그램을 작성한다. 자르지 않고 한 조각으로 두는 것은 언제나 가능하므로 답은 항상 존재한다.

입력

첫 줄에 데이터 집합의 개수 KK가 주어진다 (1≤K≤201 \le K \le 20). 이어서 KK개의 데이터 집합이 다음 형식으로 주어진다.

각 데이터 집합의 첫 줄에는 피자 위 콩고기의 개수 NN이 주어진다 (1≤N≤2001 \le N \le 200). 다음 NN개의 줄에는 콩고기의 위치가 한 줄에 하나씩 주어진다. 위치는 피자 중심을 기준으로 한 극좌표이고, 한 줄에 두 실수 α\alpha와 rr가 공백으로 구분되어 주어진다. α\alpha는 양의 xx축에서 중심과 콩고기를 잇는 선분까지 반시계 방향으로 잰 각이며 0≤α<2π0 \le \alpha < 2\pi이다. rr는 중심에서 콩고기까지의 거리이며 0<r≤10 < r \le 1이다. 피자의 반지름은 1이다. 두 값 모두 소수점 아래 최대 6자리까지 주어진다. 콩고기는 점으로 보며, 같은 자리에 놓인 콩고기는 없다. 각도가 같고 중심에서의 거리만 다른 콩고기는 있을 수 있다.

출력

각 데이터 집합마다 먼저 Data Set x:를 한 줄에 출력한다. xx는 데이터 집합의 번호이고 1부터 센다. 다음 줄에는 나눌 수 있는 조각 수의 최댓값을 yy라 할 때 y slices를 출력한다. 최댓값이 1일 때도 1 slices로 출력한다. 각 데이터 집합의 출력 뒤에는 빈 줄을 하나 출력한다.

예제3

  1. 예제 1

    입력
    2
    2
    1.57 0.5
    1.57 0.7
    4
    0.7 0.9
    1.5 0.1
    1.8 0.5
    3.05 1.0
    
    예상 출력
    Data Set 1:
    1 slices
    
    Data Set 2:
    2 slices
    
  2. 예제 2

    입력
    3
    1
    0.000000 1.000000
    2
    1.234567 0.200000
    1.234567 0.900000
    2
    0.000000 0.500000
    3.141593 0.500000
    
    예상 출력
    Data Set 1:
    1 slices
    
    Data Set 2:
    1 slices
    
    Data Set 3:
    2 slices
    
    
  3. 예제 3

    입력
    2
    8
    0.000000 0.500000
    0.785398 0.500000
    1.570796 0.500000
    2.356194 0.500000
    3.141593 0.500000
    3.926991 0.500000
    4.712389 0.500000
    5.497787 0.500000
    6
    0.000000 0.100000
    0.000000 0.200000
    2.094395 0.100000
    2.094395 0.200000
    4.188790 0.100000
    4.188790 0.200000
    
    예상 출력
    Data Set 1:
    8 slices
    
    Data Set 2:
    3 slices