달아나는 메추라기

각기 다른 속도로 좌우로 도망치는 메추라기를 오가는 순서를 정해 가장 짧은 시간에 모두 잡습니다.

보통7동적 계획법수학아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

기르던 메추라기 NN마리가 모두 달아났다. 당신은 수직선 위 좌표 00에 서 있고, ii번째 메추라기는 00이 아닌 정수 좌표 PiP_i(미터)에서 출발한다. 메추라기는 매초 정수 속도 SiS_i미터로 당신에게서 멀어지는 방향으로 쉬지 않고 달리며, 당신이 자기 쪽으로 달려오지 않는 동안에도 계속 달린다. 당신은 매초 정수 속도 YY미터로 달릴 수 있고, 원하는 순간에 즉시 방향을 바꿀 수 있다. 당신이 어떤 메추라기와 같은 지점에 있게 되면 그 메추라기는 그 자리에서 잡히고, 잡는 데 추가 시간은 들지 않는다.

메추라기를 지나치려면 먼저 잡아야 하므로, 양의 좌표에서 출발한 메추라기는 계속 오른쪽으로, 음의 좌표에서 출발한 메추라기는 계속 왼쪽으로 달린다.

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

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다. 각 테스트 케이스의 첫 줄에는 당신의 속도 YY와 메추라기의 수 NN이 공백을 두고 주어진다. 다음 줄에는 메추라기의 위치 P1,P2,,PNP_1, P_2, \dots, P_N이, 그 다음 줄에는 메추라기의 속도 S1,S2,,SNS_1, S_2, \dots, S_N이 각각 공백을 두고 주어진다.

제한

  • 1T1001 \le T \le 100
  • 2Y10002 \le Y \le 1000
  • 1N251 \le N \le 25
  • 107Pi107-10^7 \le P_i \le 10^7, Pi0P_i \ne 0
  • 1Si<Y1 \le S_i < Y

출력

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

yy는 소수점 아래 여섯째 자리까지 반올림해서 적고, 소수점 아래 자리는 항상 여섯 개를 적는다. 버리는 부분이 정확히 절반이면 올린다. 입력 데이터의 정확한 답은 모두 반올림 경계에서 10910^{-9} 이상 떨어져 있다.

힌트

첫 번째 예제의 1번 테스트 케이스에서는 왼쪽으로 달려 출발 지점에서 왼쪽으로 12미터 떨어진 지점에서 메추라기 세 마리를 한꺼번에 잡을 수 있다. 3초가 걸린다.

2번 테스트 케이스의 최적 전략 하나는 다음과 같다. 먼저 왼쪽으로 달려 1초 뒤 좌표 2-2에서 두 번째 메추라기를 잡고, 방향을 바꿔 오른쪽으로 달려 4초를 더 써서 좌표 66에서 첫 번째 메추라기를 잡는다.