만드는 중입니다

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

분수의 뺄셈

시간 제한1초메모리 제한1024 MB

요약
파일에서 읽은 분수 a/b에서 c/d를 빼고, 결과를 기약분수와 대분수 형태로 출력합니다.
난이도

쉬움10점 중 2점

유형
수학, 구현
정답자
아직 제출이 없습니다

문제

일반 분수의 뺄셈을 할 수 있는 프로그램을 작성하시오.

입력

텍스트 파일의 첫 번째 줄과 두 번째 줄에는 슬래시를 사용해 적은 분수 a/ba/b와 c/dc/d가 주어진다. 여기서 aa와 cc는 0 이상이고, bb와 dd는 1000 이하의 양의 정수이다. 차 a/b−c/da/b-c/d를 기약분수 또는 대분수로 구하시오. 결과는 형식이 없는 형태와 형식이 있는 형태로 모두 출력한다.

출력

텍스트 파일의 첫 번째 줄에는 결과의 정수부를 출력한다 (0일 수도 있다). 분수부가 0이 아니면 두 번째 줄에 기약분수를 x/y 형태로 출력한다. 분수부가 0이면 파일의 두 번째 줄은 비워 둔다.

분수부가 0이 아니면 결과를 형식이 있는 형태로도 출력한다. 세 번째 줄에는 분수부의 분자를, 네 번째 줄에는 정수부와 마이너스 기호로 이루어진 분수선을, 다섯 번째 줄에는 분수부의 분모를 출력한다. 분수선의 길이는 분모의 길이와 같아야 한다. 분자와 분모는 분수선과 같은 위치에서 줄이 끝나야 한다. 값이 0인 정수부는 형식이 있는 형태에서 출력하지 않는다.

결과가 음수이면 정수부 앞에 마이너스 기호를 붙여 표시한다. 음수 결과이면서 정수부가 없으면, 형식이 없는 형태에서는 정수부를 -0으로 출력하고, 형식이 있는 형태에서는 숫자 0 없이 분수 앞에 마이너스 기호만 붙인다 (예제 참고). 음수가 아닌 결과에는 기호를 출력하지 않는다.

모든 결과는 공백 없이 출력한다. 다만 대분수의 분자와 분모를 맞추는 데 필요한 세 번째 줄과 다섯 번째 줄 앞의 공백은 예외로 한다.

예제3

  1. 예제 1

    입력
    3/2
    1/2
    
    예상 출력
    1
    
  2. 예제 2

    입력
    1/5
    22/4
    
    예상 출력
    -5
    3/10
       3
    -5--
      10
    
  3. 예제 3

    입력
    30/1
    61/2
    
    예상 출력
    -0
    1/2
     1
    --
     2