Murdude lahutamine

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

요약
분모와 분자가 1000 이하인 두 분수를 빼고, 결과를 약분해 일반 형식과 정렬된 대분자 그림으로 출력한다.
난이도

쉬움10점 중 3점

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

문제

Kirjutada programm, mis oskab harilikke murde lahutada.

입력

Tekstifaili esimesel ja teisel real on kaldkriipsu abil kirjutatud murrud a/ba/b ja c/dc/d, kus aa ja cc on mittenegatiivsed ning bb ja dd positiivsed täisarvud suurusega kuni 10001000. Leida vahe a/b−c/da/b-c/d lihtmurru või segaarvuna, kus murd on taandatud. Väljastada tulemus formaatimata kujul ja formaadituna.

출력

Tekstifaili esimesele reale väljastada tulemuse täisosa (võib olla ka 0). Kui murdosa erineb nullist, siis väljastada see teisele reale taandatud murruna kujul x/yx/y. Kui murdosa on null, siis jätta faili teine rida tühjaks.

Kui tulemuse murdosa erineb nullist, siis väljastada tulemus ka formaaditud kujul. Faili kolmandale reale väljastada tulemuse murdosa lugeja, neljandale reale täisosa ja miinusmärkidest moodustatud murrujoon, viiendale reale murdosa nimetaja. Murrujoone pikkus peab olema võrdne nimetaja pikkusega. Lugeja ja nimetaja peavad real lõppema samas positsioonis nagu murrujoon. Nulliga võrduv täisosa jätta formaaditud kujus väljastamata.

Kui tulemus on negatiivne, siis tähistada seda miinusmärgiga täisosa ees. Negatiivse vastuse ja täisosa puudumise korral väljastada täisosaks formaatimata kujul -0 ja formaaditud kujul märkida miinusmärk murru ette ilma arvuta 0 (vt näidet). Mittenegatiivse vastuse puhul märki mitte väljastada.

Kõik tulemused väljastada tühikuteta, välja arvatud segaarvu murdosa nimetaja ja lugeja joondamiseks vajalikud tühikud kolmanda ja viienda rea alguses.

예제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