유리수는 두 정수의 비로 나타낸다. 분자 n과 분모 d가 주어지면 이 분수를 n/d로 쓴다. 같은 값을 나타내는 방법은 하나가 아니다. 예를 들어 1/2과 2/4는 값이 같다. 표현 n/d가 gcd(∣n∣,∣d∣)=1을 만족하면 이 표현을 기약분수라고 한다. 그래서 1/2은 기약분수이고 2/4는 아니다.
유리수의 덧셈은 다음과 같이 정의한다. 오른쪽 항이 기약분수라는 보장은 없다.
d1n1+d2n2=d1d2n1d2+n2d1
분자가 분모보다 크거나 같은 유리수는 정수부와 분수부로 이루어진 대분수로 쓸 수 있다. 예를 들어 531은 16/3과 값이 같은 대분수 표현이다.
유리수 수열을 읽어 그 합을 출력하라.
입력은 여러 개의 테스트로 이루어진다. 각 테스트의 첫 줄에는 정수 n (1≤n<1000)이 주어진다. n=0인 줄을 만나면 입력이 끝난다.
이어지는 n개의 줄에는 공백이 없는 문자열이 한 개씩 주어진다. 각 문자열은 유리수 하나를 나타내고 다음 세 형태 중 하나이며, 기약분수가 아닐 수도 있다. w, n, d는 정수이고 0≤w,n<1000, 1≤d<1000이다.
w,n/d: (w×d+n)/d와 값이 같은 대분수n/d: 정수부가 0인 유리수w: 분수부가 0인 정수각 테스트마다 한 줄씩, 먼저 Test x: 를 출력하고 이어서 합을 기약분수로 출력한다. x는 1부터 세는 테스트 번호이다.
합의 정수부가 w이고 분수부가 n/d일 때, 두 부분이 모두 있으면 w,n/d 꼴로, 정수부만 있으면 w 꼴로, 분수부만 있으면 n/d 꼴로 출력한다. 정수부와 분수부가 모두 없으면 0을 출력한다.