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

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

두 달팽이

시간 제한2초메모리 제한256 MB

요약
두 달팽이가 12시간 주기의 낮과 밤에 각각 다른 속도로 오르내릴 때, z시간 동안 첫 번째 달팽이가 더 높이 있는 총 시간을 구한다.
난이도

보통10점 중 4점

유형
수학, 시뮬레이션, 구현, 누적 합
정답자
아직 제출이 없습니다

문제

바샤는 창가에 앉아 있다가 기둥 위에 두 마리의 달팽이가 기어오르고 있는 것을 발견했다. 바샤는 달팽이들을 관찰하기 시작했다. 그는 한 시간 동안 첫 번째 달팽이가 a1a_1센티미터 올라가고 두 번째 달팽이가 a2a_2센티미터 올라간다는 것을 알아냈다.

다음 날 아침, 바샤는 달팽이들이 저녁보다 더 아래에 있다는 것을 발견했다. 그는 밤 동안 첫 번째 달팽이가 한 시간에 b1b_1센티미터씩 미끄러져 내려가고 두 번째 달팽이가 한 시간에 b2b_2센티미터씩 미끄러져 내려간다는 것을 깨달았다.

관찰을 시작한 지 zz시간이 지났고, 바샤는 이 zz시간 중 첫 번째 달팽이가 두 번째 달팽이보다 더 높이 있었던 시간이 얼마인지 궁금해졌다.

바샤는 달팽이들이 낮과 밤 모두 각각의 일정한 속도로 움직인다고 가정하기로 했으며, 낮과 밤은 각각 12시간씩 지속된다. 관찰은 낮이 시작될 때 시작되었고, 그때 달팽이들은 같은 높이에 있었다. 기둥의 높이와 달팽이들의 초기 위치는 달팽이들이 기둥의 범위를 벗어나지 않도록 주어져 있다.

입력

첫 번째 줄에는 정수 tt (1≤t≤1041 \le t \le 10^4)가 주어진다. 이는 입력 데이터의 테스트 예제 수이다. 다음으로 테스트 예제들의 설명이 이어진다.

각 테스트 예제는 다섯 개의 자연수 a1a_1, b1b_1, a2a_2, b2b_2, zz (1≤a1,b1,a2,b2≤1001 \le a_1, b_1, a_2, b_2 \le 100, 1≤z≤1051 \le z \le 10^5)로 이루어진다. 이는 달팽이들의 속도와 바샤가 관심을 가지는 시간의 길이이다.

모든 테스트 예제에 대한 zz의 합은 10610^6을 초과하지 않는다.

출력

tt개의 줄을 출력한다. 각 테스트 예제에 대해 첫 번째 달팽이가 두 번째 달팽이보다 더 높이 있었던 시간 xx를 하나의 실수로 출력한다. 각 수를 별도의 줄에 출력한다. 모든 수는 10−610^{-6} 이하의 절대 오차 또는 상대 오차로 출력되어야 한다.

심사위원이 사용하는 컴파일러 버전에서는 C++의 long double 타입 수 출력이 올바르게 작동하지 않는다는 점에 유의하라. 이 점 사과드리며, 조속히 수정하도록 노력하겠지만, 그때까지는 double 타입을 사용할 것을 권장한다.

예제1

  1. 예제 1

    입력
    5
    2 1 2 1 25
    2 3 1 1 100
    2 3 5 5 11
    3 9 2 4 15
    3 9 2 4 13
    
    예상 출력
    0
    18
    0
    14.4
    13