자기회전 부분집합 세기
시간 제한2초메모리 제한512 MB
주어진 N개의 점에서 자명하지 않은 회전에 대해 자기 자신으로 대응되는 부분집합을 크기별로 세어 1e9+7로 나눈 나머지를 구한다.
문제
평면 위의 점 집합이 자기회전 집합이라는 것은, 어떤 점 와 을 만족하는 각도 (단위는 도)가 존재해서 를 중심으로 평면을 만큼 회전하면 집합의 모든 점이 다시 이 집합에 속하는 점으로 옮겨진다는 뜻이다. 이때 를 회전의 중심이라고 부른다.
좌표가 모두 정수인 서로 다른 점 개로 이루어진 집합이 주어진다. 크기가 인 부분집합 가운데 자기회전 집합인 것이 각각 몇 개인지 구하여라. 어느 한쪽에만 들어 있는 점이 하나라도 있으면 두 부분집합은 서로 다르다.
입력
첫째 줄에 점의 개수 이 주어진다 ().
다음 개의 줄에는 각 점의 좌표를 나타내는 두 정수 와 가 공백으로 구분되어 주어진다 (). 주어지는 개의 점은 모두 다르다.
출력
첫째 줄에 개의 정수 을 공백 하나로 구분해 출력한다. 는 점을 정확히 개 포함하는 자기회전 부분집합의 개수이다. 이 개수가 매우 클 수 있으므로 각각을 로 나눈 나머지를 출력한다.