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

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

재우의 삼수강

면접 대비

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

요약
물의 밀도가 1/y라 높이에 따라 이동 비용이 달라질 때, y=0 위의 두 정수 점 사이 최소 이동 시간을 구한다.
난이도

보통10점 중 6점

유형
기하, 수학, 그리디
정답자
아직 제출이 없습니다

문제

재우는 <제4회 MatKor Cup>에서 수영 과목의 재수강에 성공해 Pass를 받았지만, 알 수 없는 이유로 삼수강을 하게 되었다. 재우는 이번 학기에도 성실히 수영 수업에 임했고, 다시 최종 평가만을 남겨두었다.

먼저 수영장을 2차원 좌표계로 표현할 수 있다. 수영장은 왼쪽 아래의 점을 (−1,000,0)\left(-1\\, 000, 0\right), 오른쪽 위의 점을 (1,000,2,000)\left(1\\, 000, 2\\, 000\right)로 하는 각 변이 xx축 혹은 yy축과 평행한 정사각형이다.

이번 학기부터는 지난 방학 동안 완공된 새로운 수영장을 사용한다. 이 수영장에는 최첨단 시스템이 적용되어 있는데, 위치에 따라 물의 밀도가 달라진다는 특징이 있다. 구체적으로 설명하면 다음과 같다.

  • 수영장의 (x,y)\left( x,y \right) 좌표에서의 물의 밀도 ρ\rho는 1y\frac{1}{y}이다.
  • 재우가 밀도 ρ\rho인 지점에서 단위길이를 이동하는 데 걸리는 시간은 ρ\rho초이다. 즉, 그 지점에서 재우의 수영 속력이 1ρ\frac{1}{\rho}이다.
  • 다만 y=0y=0인 곳은 알 수 없는 이유로 접근이 금지되어 있다. 그곳에 발을 들였던 학생들은 쥐도 새도 모르게 사라진 후 귀신으로 나타난다는 괴담만이 떠돌고 있다.

최종 평가를 앞둔 재우는 수영 연습을 TT번 하려고 한다. 수영 연습이란 수영장 내부의 한 위치 (x_1,y_1)\left( x\_1,y\_1 \right)에서 다른 위치 (x_2,y_2)\left( x\_2,y\_2 \right)로 수영해 이동하는 것이다. 재우가 y=0y=0인 지점을 제외한 수영장의 변과 내부에서만 이동할 때, 각 연습의 출발점에서 도착점까지 이동하기 위해 필요한 최소 시간을 구해 보자. 단, 재우의 안전을 위해 yy값이 00이거나 1,0001\\, 000을 초과하는 좌표는 주어지지 않으며, 주어지는 좌표는 모두 정수이다.

입력

첫 번째 줄에 수영 연습의 횟수 T(1≤T≤10,000)T(1\leq T\leq 10\\, 000)가 주어진다.

두 번째 줄부터 TT개의 줄에 걸쳐 각 수영 연습의 출발점과 도착점을 나타내는 4개의 정수 x_1,y_1,x_2,y_2(−1,000≤x_1,x_2≤1,000x\_1,y\_1,x\_2,y\_2(-1\\, 000\le x\_1,x\_2\le 1\\, 000; 1≤y_1,y_2≤1,000)1\le y\_1,y\_2\le 1\\, 000)가 공백으로 구분되어 주어진다.

출력

첫 번째 줄부터 TT개의 줄에 걸쳐 각 수영 연습의 출발점에서 도착점까지 이동하기 위해 필요한 최소 시간을 초 단위로 한 줄에 하나씩 출력한다.

정답과의 절대오차 또는 상대오차가 10−610^{-6} 이하이면 정답으로 인정된다.

예제4

  1. 예제 1

    입력
    1
    0 1 0 2
    
    예상 출력
    0.693147
    
  2. 예제 2

    입력
    1
    1 1 2 3
    
    예상 출력
    1.214890
    
  3. 예제 3

    입력
    2
    3 7 8 2
    123 456 789 10
    
    예상 출력
    1.683757
    4.962047
    
  4. 예제 4

    입력
    1
    1 1 1 1
    
    예상 출력
    -0.00000000001