만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

레거시 스크린세이버

시간 제한3초메모리 제한2048 MB

요약
W×H 크기 화면에서 튕기는 두 직사각형이 겹쳐 있는 시간의 비율을 극한값으로 구합니다.
난이도

어려움10점 중 8점

유형
수학, 정수론, 시뮬레이션
정답자
아직 제출이 없습니다

문제

아주 오래된 운영체제에서 스크린세이버는 화면 위를 날아다니는 직사각형 두 개로 이루어진다. 화면의 너비는 WW 픽셀, 높이는 HH 픽셀이다. 원점은 화면의 왼쪽 위 모서리이고, xx축은 원점에서 오른쪽, yy축은 원점에서 아래쪽 방향이다.

직사각형 ii (i=1,2i = 1, 2)의 너비는 wiw_i 픽셀, 높이는 hih_i 픽셀이다. 왼쪽 위 모서리는 처음에 (xi,yi)(x_i, y_i)에 있고, 처음 이동 방향은 (δxi,δyi)(\delta x_i, \delta y_i)이다. δxi\delta x_i와 δyi\delta y_i는 각각 −1-1 또는 11이다. 매초가 끝날 때마다 직사각형 ii의 왼쪽 위 모서리 좌표는 (δxi,δyi)(\delta x_i, \delta y_i)만큼 즉시 바뀐다.

직사각형 ii가 화면의 왼쪽 또는 오른쪽 경계에 닿으면 다음 초가 시작되기 전에 δxi\delta x_i의 부호가 바뀐다. 마찬가지로 위쪽 또는 아래쪽 경계에 닿으면 다음 초 전에 δyi\delta y_i의 부호가 바뀐다. 두 경계에 동시에 닿으면(화면 모서리에서만 가능하다) δxi\delta x_i와 δyi\delta y_i의 부호가 모두 바뀐다.

두 직사각형은 항상 화면 안에 완전히 들어가 있다. 즉, 경계와의 충돌은 완전 탄성 충돌이다. 다만 움직임은 이산적이어서, 매초가 끝날 때 각 직사각형은 가로와 세로로 1픽셀씩 즉시 이동한다.

두 직사각형의 교집합 넓이가 양수이면 겹친다고 본다. f(t)f(t)를 직사각형이 τ\tau초에 겹치는 정수 τ=0,1,…,t−1\tau = 0, 1, \ldots, t - 1의 개수라고 하자. (0초는 직사각형이 움직이기 시작하기 전이다.)

t→∞t \rightarrow \infty일 때 f(t)t\frac{f(t)}{t}의 극한을 기약분수로 구하라. 이 극한이 유리수임은 증명할 수 있다.

입력

첫 줄에 테스트 케이스의 개수 TT (1≤T≤10001 \le T \le 1000)가 주어진다. 각 테스트 케이스가 이어진다.

각 테스트 케이스의 첫 줄에는 화면의 너비와 높이를 나타내는 정수 WW와 HH (3≤W,H≤40003 \le W, H \le 4000)가 주어진다.

다음 두 줄은 두 직사각형을 설명한다. 각 직사각형은 여섯 정수 wiw_i, hih_i, xix_i, yiy_i, δxi\delta x_i, δyi\delta y_i로 주어지며, 차례대로 너비, 높이, 왼쪽 위 모서리 좌표, 초기 이동 방향이다. 제약은 1≤wi≤W−21 \le w_i \le W - 2, 1≤hi≤H−21 \le h_i \le H - 2, 0<xi<W−wi0 < x_i < W - w_i, 0<yi<H−hi0 < y_i < H - h_i, δxi,δyi\delta x_i, \delta y_i는 −1-1 또는 11이다.

모든 테스트 케이스의 W+HW + H 합은 8000을 넘지 않는다.

출력

각 테스트 케이스마다 음이 아닌 정수 pp와 양의 정수 qq를 슬래시(/)로 붙여 공백 없이 출력한다. t→∞t \rightarrow \infty일 때 f(t)t\frac{f(t)}{t}의 극한이 pq\frac{p}{q}와 같아야 한다. 분수는 기약분수여야 하며, 즉 pp와 qq의 최대공약수가 1이다.

힌트

두 번째 테스트 케이스에서 처음 몇 초 동안의 직사각형 상태는 아래 그림과 같다. 직사각형은 τ=0\tau = 0초와 τ=6\tau = 6초에 겹친다. 따라서 예를 들어 f(8)=2f(8) = 2이다.

예제1

  1. 예제 1

    입력
    2
    3 3
    1 1 1 1 1 1
    1 1 1 1 1 -1
    5 4
    2 2 1 1 -1 -1
    2 1 2 2 1 -1
    
    예상 출력
    1/2
    1/3