시간 제한
메모리 제한
시간 제한
3초
메모리 제한
128 MB
아르데니아 대륙에는 아주 오래전부터 살아온 불꽃 야수와 얼음 야수가 있다. 두 야수는 각자의 서식지 근처에서만 지내도록 강력한 마법 직선들에 갇혀 있으며, 어떤 야수도 이 직선들을 넘을 수 없다. 만약 두 야수가 서로 너무 가까워지면 온 인류에게 재앙이 닥친다.
대륙은 무한히 넓은 평면으로 볼 수 있다. 얼음 야수의 서식지는 점 (0,1010)에, 불꽃 야수의 서식지는 점 (0,−1010)에 있다. 즉 얼음 야수는 매우 위쪽에, 불꽃 야수는 매우 아래쪽에 자리한다. 평면 위에는 무한히 긴 직선 형태의 마법선이 여러 개 그어져 있고, 두 야수 모두 그 어떤 직선도 넘을 수 없다.
각 야수는 자신의 서식지를 포함하며 넘을 수 없는 직선들로 둘러싸인 영역 안에서만 자유롭게 돌아다닐 수 있다. 이 영역은 각 직선에 대해 그 야수의 서식지가 있는 쪽 반평면을 모두 교집합한 것으로, 볼록한 영역이 된다. 두 야수가 각각 도달할 수 있는 두 영역 사이의 최소 거리를 구하여라.
입력에는 여러 개의 테스트 케이스가 주어진다. 첫 줄에 테스트 케이스의 개수 Z (Z≤20)가 주어지고, 이어서 Z개의 테스트 케이스가 아래에서 설명하는 형식으로 주어진다.
각 테스트 케이스의 첫 줄에는 마법선의 개수 n (1≤n≤2⋅105)이 주어진다. 다음 n개의 줄에는 각각 공백으로 구분된 세 정수 a,b,c (−109≤a,b,c≤109, b=0)가 주어지며, 이는 직선 ax+by+c=0을 나타낸다. b=0이므로 모든 직선은 수직이 아니다.
각 테스트 케이스마다 한 줄에, 두 영역 사이 최소 거리의 제곱을 기약분수 p/q 형태로 출력한다. 이 값은 항상 유리수이다. q≥1이고 gcd(p,q)=1을 만족하도록 p/q를 출력한다. 예를 들어 정수 값 v는 v/1로, 거리가 0이면 0/1로 출력한다.