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

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

달아난 메추라기

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

요약
원점에서 출발하여 바깥쪽으로 도망치는 모든 메추리를 잡는 데 필요한 가장 짧은 시간을 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 수학, 구간
정답자
아직 제출이 없습니다

문제

기르던 메추라기 NN마리가 모두 달아났다. 나는 수직선 위의 좌표 00에 서 있고, ii번째 메추라기는 00이 아닌 정수 좌표 PiP_i(미터)에서 출발한다. 메추라기는 내가 있는 지점에서 멀어지는 방향으로 초속 SiS_i미터의 일정한 속력으로 계속 달아난다. 내가 그 메추라기를 쫓고 있지 않은 동안에도 달아난다.

나는 초속 YY미터의 일정한 속력으로 달리며, 원하는 순간에 즉시 방향을 바꾼다. 어떤 메추라기와 같은 지점에 있게 되는 순간 그 메추라기를 붙잡고, 붙잡는 데 걸리는 시간은 없다.

메추라기를 모두 붙잡는 데 걸리는 최소 시간은 몇 초인가?

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 테스트 케이스가 TT개 주어진다.

각 테스트 케이스의 첫 줄에는 나의 속력 YY와 메추라기의 수 NN이 공백으로 구분되어 주어진다. 둘째 줄에는 메추라기의 위치 P1,…,PNP_1, \dots, P_N이, 셋째 줄에는 메추라기의 속력 S1,…,SNS_1, \dots, S_N이 공백으로 구분되어 주어진다.

제한

  • 1≤T≤1001 \le T \le 100
  • 2≤Y≤1002 \le Y \le 100
  • 1≤N≤5001 \le N \le 500
  • −104≤Pi≤104-10^4 \le P_i \le 10^4이고 Pi≠0P_i \ne 0
  • 1≤Si<Y1 \le S_i < Y

출력

각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. xx는 11부터 시작하는 테스트 케이스 번호이고, yy는 메추라기를 모두 붙잡는 데 필요한 최소 시간(초)이다.

yy는 소수점 아래 일곱째 자리에서 반올림하여 소수점 아래 여섯 자리까지 출력한다. 모든 테스트 데이터에서 정답은 반올림 결과가 갈리는 경계로부터 5×10−95 \times 10^{-9} 이상 떨어져 있다.

예제2

  1. 예제 1

    입력
    2
    4 3
    -3 -6 -9
    3 2 1
    2 2
    1 -1
    1 1
    
    예상 출력
    Case #1: 3.000000
    Case #2: 5.000000
    
  2. 예제 2

    입력
    4
    10 4
    1 90 -1 -90
    9 1 9 1
    10 2
    1 90
    9 1
    2 1
    -5
    1
    100 2
    10000 -10000
    99 99
    
    예상 출력
    Case #1: 54.444444
    Case #2: 10.000000
    Case #3: 5.000000
    Case #4: 2010000.000000