연분수의 사칙연산

아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

실수 rr의 단순 연분수 표현은 rr를 정수 부분과 남은 값의 역수로 나누고, 그 역수를 다시 같은 방법으로 나누는 과정을 반복해서 얻는다. 표현의 모양은 다음과 같다.

r=a0+1a1+1a2+1a3+r = a_0 + \cfrac{1}{a_1 + \cfrac{1}{a_2 + \cfrac{1}{a_3 + \cdots}}}

여기서 모든 aia_i는 정수이고 a1,a2,a_1, a_2, \ldots는 양수다. 이 aia_i를 부분몫이라고 부른다. 예를 들어 5.4의 부분몫은 a0=5a_0 = 5, a1=2a_1 = 2, a2=2a_2 = 2다.

2\sqrt{2} 같은 무리수는 부분몫이 무한히 많이 필요하다. 유리수는 부분몫이 유한 개이고, 마지막 부분몫이 1이 아니어야 한다는 조건을 붙이면 그 목록이 하나로 정해진다. 연분수로 주어진 두 유리수의 합, 차, 곱, 몫을 구해서 각각 연분수로 나타내라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 세 줄이다. 첫째 줄에 두 유리수 r1r_1r2r_2의 부분몫 개수인 정수 n1n_1, n2n_2가 주어진다 (1ni91 \le n_i \le 9). 둘째 줄에 r1r_1의 부분몫 n1n_1개가, 셋째 줄에 r2r_2의 부분몫 n2n_2개가 주어진다. 모든 부분몫은 a010|a_0| \le 100<ai100 < a_i \le 10 (i1i \ge 1)을 만족하고, 각 수의 마지막 부분몫은 1이 아니며, r2r_2는 0이 아니다. 0이 두 개 적힌 줄이 나오면 입력이 끝난다.

출력

각 테스트 케이스마다 먼저 Case k:를 한 줄에 출력한다. kk는 1부터 세는 테스트 케이스 번호다. 이어서 r1+r2r_1 + r_2, r1r2r_1 - r_2, r1×r2r_1 \times r_2, r1/r2r_1 / r_2의 연분수 표현을 이 순서대로 한 줄에 하나씩 출력한다. 한 수의 부분몫은 공백 하나로 구분해 한 줄에 쓰고, 마지막 부분몫은 1이 되지 않게 한다. 계산 도중에 나오는 값은 모두 부호 있는 64비트 정수 범위에 들어간다.