만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

반딧불이 무리의 질량 중심

면접 대비

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

요약
반딧불이들의 위치와 속도를 평균 내어 무게중심을 구한 뒤, t >= 0에서 원점에 가장 가까워지는 시점을 찾는다.
난이도

쉬움10점 중 3점

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

문제

반딧불이 NN마리로 이루어진 무리를 관찰한다. 반딧불이는 저마다 일정한 속도로 직선을 따라 움직인다. 당신은 우주의 중심인 좌표 (0,0,0)(0, 0, 0)에 서 있다. 반딧불이의 질량은 모두 같다. 무리의 중심이 당신에게 얼마나 가까이 오는지 알고 싶다.

시각 t=0t = 0에서 반딧불이 각각의 위치와 속도를 알고 있고, 생각하는 구간은 t≥0t \ge 0뿐이다. 속도는 끝까지 변하지 않으며, 반딧불이는 서로도 당신도 그대로 통과해 공간 어디든 지나간다. 시각 tt에서 반딧불이 NN마리의 질량 중심을 M(t)M(t), 당신의 위치와 M(t)M(t) 사이의 거리를 d(t)d(t)라고 하자. d(t)d(t)의 최솟값 dmind_{min}과, d(t)=dmind(t) = d_{min}이 되는 가장 이른 시각 tmint_{min}을 구하여라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스는 반딧불이의 수 NN이 적힌 줄로 시작하고, 이어지는 NN개의 줄에 반딧불이 하나의 정보가 다음 형식으로 주어진다.

x y z vx vy vz

(x,y,z)(x, y, z)는 시각 t=0t = 0에서의 위치, (vx,vy,vz)(v_x, v_y, v_z)는 속도이다.

제한

  • 입력에 주어지는 수는 모두 정수이다.
  • 1≤T≤1001 \le T \le 100
  • −5000≤x,y,z,vx,vy,vz≤5000-5000 \le x, y, z, v_x, v_y, v_z \le 5000
  • 3≤N≤103 \le N \le 10

출력

각 테스트 케이스마다 다음 형식으로 한 줄씩 출력한다.

Case #X: dmin tmin

XX는 1부터 시작하는 테스트 케이스 번호이다. dmind_{min}과 tmint_{min}은 각각 소수점 아래 여덟 자리로 반올림해서 출력하고, 자릿수가 모자라면 0으로 채운다. 값이 정확히 중간이면 올림한다. 두 값은 공백 하나로 구분한다.

힌트

NN개의 점 (xi,yi,zi)(x_i, y_i, z_i)의 질량 중심은 점 (xc,yc,zc)(x_c, y_c, z_c)이고, 각 좌표는 다음과 같다.

xc=x1+x2+⋯+xNN,yc=y1+y2+⋯+yNN,zc=z1+z2+⋯+zNNx_c = \frac{x_1 + x_2 + \dots + x_N}{N}, \qquad y_c = \frac{y_1 + y_2 + \dots + y_N}{N}, \qquad z_c = \frac{z_1 + z_2 + \dots + z_N}{N}

예제2

  1. 예제 1

    입력
    3
    3
    3 0 -4 0 0 3
    -3 -2 -1 3 0 0
    -3 -1 2 0 3 0
    3
    -5 0 0 1 0 0
    -7 0 0 1 0 0
    -6 3 0 1 0 0
    4
    1 2 3 1 2 3
    3 2 1 3 2 1
    1 0 0 0 0 -1
    0 10 0 0 -10 -1
    
    예상 출력
    Case #1: 0.00000000 1.00000000
    Case #2: 1.00000000 6.00000000
    Case #3: 3.36340601 1.00000000
    
  2. 예제 2

    입력
    2
    3
    1 0 0 2 0 0
    -1 4 0 -2 0 0
    0 -1 3 0 0 0
    3
    2 2 2 1 1 1
    2 2 2 1 1 1
    2 2 2 1 1 1
    
    예상 출력
    Case #1: 1.41421356 0.00000000
    Case #2: 3.46410162 0.00000000