힉스 보손
시간 제한1초메모리 제한128 MB
시간에 따라 극좌표의 반지름과 각도가 각각 일차식으로 변하는 두 입자가 처음으로 같은 위치에 도달하는 시각을 유리수로 구하거나, 충돌하지 않으면 0을 출력한다.
문제
첫 번째 힉스 보손이 검출된 지 100년이 지난 지금, 입자 물리학은 모든 고등학교의 주요 과목이 되었습니다. 아이들은 휴대용 입자 가속기만으로 아주 작은 블랙홀을 만들어 친구들에게 자랑할 수 있다는 사실을 무척 좋아하죠. 휴대용 가속기로도 원리상 행성 전체를 삼킬 만큼 큰 블랙홀을 만들 수 있지만, 이 장치들은 그런 파국적인 부작용이 불가능할 때에만 입자를 발사하도록 프로그래밍되어 있습니다.
당신의 손녀는 두 대의 작은 입자 가속기로 이루어진 휴대용 키트로 자신만의 블랙홀을 만들려고 합니다. 두 가속기는 각각 보손 크기의 입자 하나씩을 발사합니다. 두 입자는 동시에 발사되며, 서로 충돌하는 순간 블랙홀이 나타납니다. 하지만 손녀는 그 순간이 오기까지 얼마나 기다려야 할지 모릅니다. 다행히 각 가속기는 네 개의 정수 , , , 를 화면에 표시하여 입자의 궤적을 예측해 줍니다. 이 값들을
에 대입하면 극좌표로 나타낸 입자의 궤적을 얻을 수 있습니다. 반지름 은 거리 단위, 각도 는 도(°) 단위이며, 시간 는 시간 단위로 항상 기약분수로 표현되는 유리수입니다.
극좌표에서 한 점은 무한히 많은 표현을 가집니다. 일반적으로 점 는 임의의 정수 에 대해 또는 로도 나타낼 수 있습니다. 또한 원점()은 임의의 에 대해 로 나타낼 수 있습니다.
두 가속기가 알려 준 매개변수를 이용해, 손녀는 두 입자가 언젠가 충돌할지, 충돌한다면 처음 충돌하는 시각이 언제인지 알고 싶어 합니다. 첫 충돌 이후에는 궤적을 예측할 수 없으므로, 오직 가장 처음의 충돌만 고려합니다.
손녀는 매우 똑똑하고 입자 물리학에도 해박하지만 컴퓨터 프로그래밍은 할 줄 몰라서, 할아버지(또는 할머니)의 오래된 프로그래밍 대회 노트를 뒤지고 있습니다. 다행히 당신은 예전에 바로 이 프로그램을 작성한 적이 있습니다. 이제 다시 한번 작성해 볼 시간입니다.
입력
입력은 여러 개의 테스트 케이스로 이루어지며, 한 줄에 하나씩 주어집니다. 각 테스트 케이스는 공백 하나로 구분된 여덟 개의 정수로 이루어집니다.
앞의 네 값 ()은 첫 번째 가속기가 표시한 매개변수이고, 뒤의 네 값 ()은 두 입자가 발사될 때 두 번째 가속기가 표시한 매개변수입니다.
입력의 끝은 여덟 개의 정수가 모두 인 줄()로 표시되며, 이 줄은 테스트 케이스로 처리하지 않습니다. 이는 입자를 발사하면 행성을 삼킬 블랙홀이 생기는 경우 가속기가 표시하는 값입니다. 자체는 유효한 입력 값이므로, 오직 여덟 개가 모두 인 줄만 입력의 끝을 의미한다는 점에 유의하세요.
출력
각 테스트 케이스마다 공백 하나로 구분된 두 개의 음이 아닌 정수 와 를 한 줄에 출력합니다. 두 입자가 절대 충돌하지 않는다면 을 출력합니다. 그렇지 않다면 는 가장 이른 충돌 시각을 기약분수로 나타낸 것이어야 하며, 시각이 정수이더라도 분모는 반드시 로 출력해야 합니다.