Eureka
시간 제한5초메모리 제한64 MB
n개의 점 가운데 선택한 점들이 모두 어떤 두 점을 잇는 선분 위에 놓이는 부분집합의 개수를 10^9+7로 나눈 나머지로 구합니다.
문제
Zhang 교수는 평면 위에 개의 점을 찍었고, 점에는 번호가 붙어 있다. 번 점의 좌표는 이다. Zhang 교수는 최고 집합의 개수를 알고 싶어 한다. 개수는 매우 클 수 있으므로 로 나눈 나머지를 구한다.
점 번호들의 집합 에 최고 쌍이 하나 이상 있으면, 를 최고 집합이라 한다. 서로 다른 두 번호 , (, )가 최고 쌍이라는 것은 의 모든 에 대해 가 성립한다는 뜻이다. 여기서 이고, 이다.
입력
여러 개의 테스트 케이스가 주어진다. 첫 줄에는 테스트 케이스의 수 가 주어진다. 각 테스트 케이스의 첫 줄에는 점의 개수 ()이 주어지고, 이어서 개의 줄에 정수 와 ()가 한 줄에 하나씩 주어진다. 테스트 케이스는 250개를 넘지 않으며, 모든 테스트 케이스의 을 합친 값은 이하이다.
출력
각 테스트 케이스마다 최고 집합의 개수를 로 나눈 나머지를 한 줄에 출력한다.