아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

피라미드 경비병

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

요약
두 경비병이 정사각뿔 표면에서 서로 반대 방향으로 사각형 경로를 따라 돌 때, 같은 면 위에 있으면서 두 사람 사이 거리가 최소가 되는 값을 구한다.
난이도

어려움10점 중 8점

유형
기하, 수학, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

기자의 대피라미드는 이집트에서 가장 유명한 관광 명소다. 하지만 피라미드를 세우는 일은 전체 과업의 절반에 불과했고, 나머지 절반은 경비였다는 사실은 잘 알려져 있지 않다. 피라미드가 완성되자, 파라오의 시신에게 그 많은 보물이 다 필요하지는 않다고 여긴 사람들이 일부를 가로채려 했다. 도굴을 막기 위해 두 명의 경비병이 서로 반대 방향으로 피라미드 둘레를 끊임없이 돌며 순찰했다.

순찰 계획을 세우기 위해, 두 경비병이 서로를 볼 수 있는 순간들 중 둘 사이의 가장 가까운 거리를 구하는 것이 당신의 과제다.

대피라미드는 밑면이 정사각형이고 꼭짓점이 밑면 중심 바로 위에 있는 (기하학적 의미의) 피라미드다. 밑변의 길이는 440440 큐빗, 높이는 280280 큐빗이다. (큐빗은 고대 이집트에서 쓰던 길이 단위다.)

두 경비병은 모두 피라미드 표면을 따라 움직이며, 꼭짓점을 기준으로 한 명은 시계 방향, 다른 한 명은 반시계 방향으로 돈다. 각 경비병의 경로는 네 개의 직선 구간으로 이루어진 닫힌 사각형이며, 각 구간은 피라미드의 네 삼각형 면 중 하나 위를 지난다. 경비병은 출발점으로 돌아오면 곧바로 완전히 같은 경로를 다시 돈다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 두 줄로 되어 있으며, 각 줄은 경비병 한 명의 경로를 나타낸다. 각 줄에는 다섯 개의 정수 H1H_1, H2H_2, H3H_3, H4H_4, TT가 주어지며 0≤Hi<2800 \le H_i < 280, 1≤T≤1201 \le T \le 120이다.

경비병은 네 개의 빗변(밑면 꼭짓점에서 꼭대기로 이어지는 모서리) 중 하나에서 높이 H1H_1(지면에서 수직으로 잰 높이) 지점에서 출발한다. 이어지는 세 값 H2H_2, H3H_3, H4H_4는 경비병이 지나가는 순서대로 나머지 세 빗변을 지나는 높이다. TT는 경비병이 출발점으로 되돌아와 다음 한 바퀴를 시작하기까지 걸리는 시간(분)이다.

두 경비병은 같은 순간에 서로 반대편 빗변에서 출발하여 반대 방향으로 걷는다. 둘 다 일정한 속도로 움직이며, 순찰은 무한히 오래 계속된다고 가정해도 된다.

입력의 끝은 다섯 개의 0으로 이루어진 줄로 표시되며, 이 줄은 처리하지 않는다.

출력

각 테스트 케이스마다, 두 경비병이 실제로 서로를 볼 수 있는 순간만 고려하여 둘 사이의 최소 거리를 출력한다. 즉, 두 사람이 피라미드의 같은 면 또는 같은 모서리 위에 있을 때만 센다. 거리는 큐빗 단위로, 소수점 아래 정확히 세 자리까지 출력한다.

예제1

  1. 예제 1

    입력
    0 0 0 0 20
    0 0 0 0 17
    100 200 100 200 50
    50 150 50 150 60
    0 0 0 0 0
    
    예상 출력
    0.000
    44.481