피자!
시간 제한1초메모리 제한128 MB
단위 원 위에 극좌표로 주어진 조각들을 같은 각도로 자를 때, 각 조각이 같은 개수의 조각을 담도록 하는 최대 조각 수를 구한다.
문제
결과 발표가 모두 끝나고, 대회에서 가장 중요한 순간인 피자를 먹는 시간이 되었다.
그런데 피자가 이상하게 생긴 탓에 또 코딩을 해야 한다.
피자는 반지름이 인 원 모양이고, 그 위에는 너겟 몇 개가 올려져 있다.
피자를 자를 때는 다음 세 조건을 모두 만족해야 한다.
- 자르는 선은 반드시 피자의 중심에서 바깥으로 뻗는 반지름을 따라야 한다.
- 어떤 너겟도 잘라서는 안 된다.
- 다 자른 뒤 생긴 모든 조각은 크기가 같아야 하고, 각 조각에 올려진 너겟의 수도 모두 같아야 한다.
대회가 끝났는데도 겨우 너겟 때문에 다툼이 벌어질 판이다. 참가자가 많으니 피자를 가능한 한 많은 조각으로 자르고 싶다. 위 조건을 지키면서 피자를 최대 몇 조각까지 나눌 수 있는지 구하여라.
피자를 아예 자르지 않아도 된다. 이 경우 피자는 조각이 된다.
입력
첫 줄에 테스트 케이스의 수 가 주어진다.
각 테스트 케이스의 첫 줄에는 너겟의 수 ()이 주어진다.
이어지는 개의 줄에는 각 너겟의 위치가 두 실수 와 로, 공백으로 구분되어 주어진다.
는 피자의 중심에서 반시계 방향으로 잰 각도이며 를 만족한다.
는 피자의 중심에서 너겟까지의 거리이며 을 만족한다. (피자의 반지름은 이다.)
너겟은 크기가 없는 점으로 생각하며, 완전히 같은 위치에 놓인 두 너겟은 없다. (단, 각도 가 같고 거리 만 다른 너겟은 있을 수 있다.)
출력
각 테스트 케이스마다 먼저 Data Set K: 를 출력한 뒤 (여기서 는 테스트 케이스 번호), 피자를 나눌 수 있는 최대 조각 수 에 대해 s slices를 출력한다.
예를 들어 첫 번째 테스트 케이스의 답이 이라면 Data Set 1: 1 slices를 출력한다.
서로 다른 테스트 케이스의 출력 사이에는 빈 줄을 하나 출력한다.
힌트
출력의 문법적인 어색함(예: 조각이 하나여도 1 slices로 출력)은 신경 쓰지 않아도 된다.