물방울 응집

등속으로 움직이는 원형 물방울이 닿으면 면적 가중 평균으로 합쳐지며 움직이는 과정을 끝까지 시뮬레이션하고 최종 개수와 마지막 합체 시각을 구합니다.

보통6시뮬레이션수학기하아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

평면에서 움직이는 물방울의 운동을 시뮬레이션한다. 각 물방울은 일정한 속도로 움직이는 원이고, 크기는 저마다 다르다. 두 물방울의 원이 맞닿는 순간 둘은 응집해서 하나의 원형 물방울이 된다. 새 물방울의 넓이는 두 물방울 넓이의 합이다. 새 물방울의 중심은 맞닿는 순간 두 중심의 넓이 가중 평균이고, 속도는 두 속도의 넓이 가중 평균이다.

그림이 응집 과정을 보여 준다. 위쪽 그림에서 반지름이 4이고 중심이 (14,0)(-14, 0)인 물방울이 속도 (1,0)(1, 0)으로 움직여, 원점에 정지해 있는 반지름 3인 물방울로 다가간다. 두 원은 시각 t=7.0t = 7.0에 맞닿고, 가운데 그림이 그 순간이다.

맞닿는 순간 반지름 4인 물방울의 중심은 (7,0)(-7, 0)이다. 두 물방울의 넓이가 각각 16π16\pi9π9\pi이므로 새 물방울의 넓이는 25π25\pi, 반지름은 5이다. 새 물방울 중심의 xx좌표는 1625(7.0)+9250.0=4.48\frac{16}{25} \cdot (-7.0) + \frac{9}{25} \cdot 0.0 = -4.48이고, yy좌표는 16250.0+9250.0=0.0\frac{16}{25} \cdot 0.0 + \frac{9}{25} \cdot 0.0 = 0.0이다. 같은 방법으로 계산하면 새 물방울의 속도는 (0.64,0)(0.64, 0)이다.

처음 배치가 주어진다. 더 이상 응집이 일어날 수 없을 때까지 운동을 시뮬레이션해서, 남은 물방울의 개수와 마지막 응집이 일어난 시각을 구하라.

모든 테스트는 다음을 만족한다.

  • 처음 물방울은 서로 맞닿아 있지 않다.
  • 응집으로 새 물방울이 생기는 순간, 그 물방울은 다른 어떤 물방울과도 맞닿지 않는다. 맞닿기까지 0.0010.001 이상 떨어져 있다.
  • 두 물방울이 한 점에서만 만나며 스쳐 지나가는 일은 없다. 어떤 물방울의 반지름을 0.0010.001만큼 늘리거나 줄여도 다른 물방울과 충돌하는지 여부는 달라지지 않는다.
  • 두 쌍이 정확히 같은 시각에 응집하는 일은 없다. 연속한 두 응집의 시각 차이는 0.0010.001 이상이다.
  • 시각 t=109t = 10^9 이후에는 응집이 일어나지 않는다.
  • tt의 정확한 값은 10610^{-6}의 연속한 두 배수의 중점에서 10710^{-7} 이상 떨어져 있다. 배정밀도 실수로 계산해도 소수점 아래 여섯째 자리 반올림 결과가 하나로 정해진다.

입력

첫째 줄에 처음 물방울의 개수 NN이 주어진다 (2N1002 \le N \le 100).

다음 NN개 줄에는 각각 정수 다섯 개 xx, yy, vxv_x, vyv_y, rr가 공백으로 구분되어 주어진다. 차례대로 중심의 xx좌표, 중심의 yy좌표, 속도의 xx성분, 속도의 yy성분, 반지름이다. 10000x,y,vx,vy10000-10000 \le x, y, v_x, v_y \le 10000이고 1r1001 \le r \le 100이다.

출력

한 줄에 값 두 개 kktt를 공백 하나로 구분해 출력한다. kk는 최종 배치에 남은 물방울의 개수이고, tt는 마지막 응집이 일어난 시각이다.

tt는 소수점 아래 여섯째 자리까지 반올림해서 자릿수를 정확히 여섯 자리로 맞춰 출력한다. 응집이 한 번도 일어나지 않으면 kk는 처음 물방울의 개수와 같고 tt0.000000이다.