늦잠을 잤다. 게다가 오늘은 대회 날이다. 호텔에서 대회장으로 가는 도중에 델프트 어딘가에서 길을 잃었다. 주위는 온통 흐라흐트(grachten), 네덜란드의 여러 도시를 가로지르는 운하다. NWERC 대회 시작이 몇 분밖에 남지 않아 마음이 급하다.
하필 오늘 델프트 시내에서 자전거 경기가 열려 다리 몇 개가 통제되었다. 그래서 열린 다리를 찾아 헤매는 대신 운하를 뛰어넘기로 했다.
나 같은 컴퓨터 과학자가 알고리즘에는 강하지만 운동에는 약하다는 건 다들 안다. 게다가 겁이 많아서 물에 빠지고 싶지 않다. 그러니 운하를 뛰어넘는 데 필요한 거리를 계산해 줬으면 한다.
다행히 어제 델프트 시내 견학에 참여해서, 이 도시의 보도블록이 모두 같은 크기의 정사각형이라는 사실을 배웠다. 그래서 운하의 내 쪽을 보도블록 단위로 잴 수 있다.
나는 점 C에서 점 A와 점 B를 거쳐 점 D까지 걸으며 보도블록 수를 셌다.
점 A와 점 C는 항상 내 쪽 운하 가장자리에 있다. 점 B와 점 D는 운하에서 같은 거리만큼 떨어져 있다. 목표 지점 T는 항상 운하 반대편 가장자리에 있고, 점 B와 점 A를 지나는 직선과 점 D와 점 C를 지나는 직선의 교점이다. AT와 AC가 이루는 각은 90도이고, 운하의 두 가장자리는 평행한 직선이다.
점 A와 점 T 사이의 거리, 즉 내가 뛰어야 하는 거리를 구해 달라.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 줄에 양의 정수 세 개가 주어지며, 순서대로 A와 B 사이의 거리, A와 C 사이의 거리, B와 D 사이의 거리다. 입력은 파일의 끝에서 끝난다.
모든 거리는 1000을 넘지 않고, B와 D 사이의 거리는 A와 C 사이의 거리보다 크다.
각 테스트 케이스마다 A와 T 사이의 거리를 기약분수로 한 줄에 출력한다. 분자와 분모의 공약수를 모두 약분한 뒤 분자/분모 형식으로 쓰고, 분모가 1이어도 생략하지 않는다.