신나는 분수 계산
시간 제한1초메모리 제한128 MB
각 테스트 케이스마다 대분수, 정수, 분수를 최대 999개까지 더한 뒤 기약분수 형태의 대분수로 출력합니다.
문제
유리수는 두 정수의 비로 나타낸다. 분자 과 분모 가 주어지면 이 분수를 로 쓴다. 같은 값을 나타내는 방법은 하나가 아니다. 예를 들어 과 는 값이 같다. 표현 가 을 만족하면 이 표현을 기약분수라고 한다. 그래서 은 기약분수이고 는 아니다.
유리수의 덧셈은 다음과 같이 정의한다. 오른쪽 항이 기약분수라는 보장은 없다.
분자가 분모보다 크거나 같은 유리수는 정수부와 분수부로 이루어진 대분수로 쓸 수 있다. 예를 들어 은 과 값이 같은 대분수 표현이다.
유리수 수열을 읽어 그 합을 출력하라.
입력
입력은 여러 개의 테스트로 이루어진다. 각 테스트의 첫 줄에는 정수 ()이 주어진다. 인 줄을 만나면 입력이 끝난다.
이어지는 개의 줄에는 공백이 없는 문자열이 한 개씩 주어진다. 각 문자열은 유리수 하나를 나타내고 다음 세 형태 중 하나이며, 기약분수가 아닐 수도 있다. , , 는 정수이고 , 이다.
w,n/d: 와 값이 같은 대분수n/d: 정수부가 0인 유리수w: 분수부가 0인 정수
출력
각 테스트마다 한 줄씩, 먼저 Test x: 를 출력하고 이어서 합을 기약분수로 출력한다. 는 1부터 세는 테스트 번호이다.
합의 정수부가 이고 분수부가 일 때, 두 부분이 모두 있으면 w,n/d 꼴로, 정수부만 있으면 w 꼴로, 분수부만 있으면 n/d 꼴로 출력한다. 정수부와 분수부가 모두 없으면 0을 출력한다.