의식의 원

시간 제한5초메모리 제한128 MB

요약
모든 동료를 포함하고 오크는 모두 엄격히 바깥에 두는 가장 작은 원을 구해 반지름의 제곱을 기약분수로 출력한다.
난이도

어려움10점 중 8점

유형
기하, 완전 탐색, 구현
정답자
아직 제출이 없습니다

문제

리븐델을 떠나기 전, 빌보는 프로도에게 자신이 스팅이라 부르던 요정제 검을 건네주었다. 이 검은 특별해서, 오크가 가까이 있으면 칼날이 파랗게 빛난다.

프로도는 자신의 동료들을 모두 안전하게 안쪽에 담으면서 오크는 모두 바깥에 두는 하나의 원을 그리려 한다. 그러한 원 중 가장 작은 것을 찾아라.

입력

입력은 파일의 끝까지 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 두 줄로 주어진다.

  • Companions: 로 시작하고 그 뒤에 프로도 동료들의 위치가 오는 줄.
  • Orcs: 로 시작하고 그 뒤에 오크들의 위치가 오는 줄.

각 위치는 정수 좌표를 사용하여 (x,y) 형태로 적히며, 한 줄에는 공백으로 구분된 0개 이상의 점이 나열된다. 단어 none 은 공집합을 뜻한다. 모든 좌표는 00 이상 100100 이하의 정수이고, 한 테스트 케이스 안의 모든 점은 서로 다르다. 한 테스트 케이스에서 두 무리를 합친 점의 개수는 최대 300300 개이며, 200200 개보다 많은 점을 가진 테스트 케이스는 최대 1010 개이다.

출력

각 테스트 케이스마다, 모든 동료의 위치를 포함하면서(동료는 경계 위에 있어도 된다) 모든 오크는 원의 바깥에 엄격히 놓이도록 하는 가장 작은 원을 생각하자.

그러한 원이 존재하지 않으면 The Orcs are close 를 출력한다.

존재한다면, 그 가장 작은 원의 반지름의 제곱을 기약분수로, q >= 1 인 p/q 형태로 출력한다(반지름이 00 이면 0/1 을 출력한다). 최적의 원은 정수 좌표의 점들로 결정되므로 반지름의 제곱은 항상 유리수이다.

가장 작은 반지름은 실제로는 도달되지 않는 하한(infimum)일 수 있다. 가장 빠듯한 원이 어떤 오크를 경계 위에 정확히 올려놓게 되더라도, 중심을 무한히 작은 양만큼 옮기고 반지름을 무한히 조금 키운 원은 그 오크를 여전히 바깥에 둘 수 있다. 이 경우에도 그 극한 원의 반지름의 제곱을 출력한다. 테스트 케이스에 동료가 한 명뿐이면 반지름 00 인 원이 이미 조건을 만족하므로 답은 0/1 이다.

예제3

  1. 예제 1

    입력
    Companions: (0,0) (1,1)
    Orcs: (1,0) (0,1)
    Companions: (0,0) (0,1) (1,1) (1,0)
    Orcs: none
    Companions: (0,0) (0,1) (1,1)
    Orcs: (1,0)
    Companions: (0,0)
    Orcs: none
    
    예상 출력
    The Orcs are close
    1/2
    1/2
    0/1
    
  2. 예제 2

    입력
    Companions: (5,5)
    Orcs: (0,0)
    
    예상 출력
    0/1
    
  3. 예제 3

    입력
    Companions: (0,0) (4,0)
    Orcs: none
    
    예상 출력
    4/1