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

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

달리기 속력 측정

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

요약
민혁은 시간을 정해 위치를 확인하는 예/아니오 관측으로 유라의 속도 구간을 너비 t까지 좁히는 데 필요한 최악 기준 최소 확인 횟수를 구합니다.
난이도

어려움10점 중 8점

유형
이분 탐색, 수학, 그리디
정답자
아직 제출이 없습니다

문제

코치 민혁이는 선수 유라의 체력을 재려고 ll미터 달리기를 시킨다. 유라는 출발선에서 결승선까지 v1v_1 이상 v2v_2 이하인 실수 속력으로 일정하게 달린다. 민혁이는 그 속력이 정확히 얼마인지 모른다.

기록을 잴 타이머를 두고 온 민혁이는 다른 방법으로 속력의 범위를 좁히기로 한다. 민혁이는 원하는 시각에 코스 위의 한 지점으로 가서 유라가 그 지점에 이미 도달했는지를 확인한다. 지점은 출발점에서 xx미터 떨어진 곳이고 0≤x≤l0 \le x \le l이다. 확인의 결과는 "이미 도달했다"와 "아직 도달하지 않았다" 둘 중 하나다.

지점으로 가는 데 최소 ss초가 걸린다. 그래서 출발 후 ss초가 지나기 전에는 첫 확인을 할 수 없고, 한 번 확인한 뒤에도 ss초가 지나기 전에는 다음 확인을 할 수 없다. kk번째 확인은 아무리 빨라도 출발 후 k×sk \times s초에 이루어진다.

민혁이는 앞선 확인의 결과를 보고 다음 확인의 시각과 지점을 정한다. 확인을 모두 마쳤을 때 결과와 모순되지 않는 속력 구간의 길이가 tt 이하이면, 민혁이는 오차 ±t/2\pm t/2 안에서 유라의 속력을 말할 수 있고 측정에 성공한 것이다.

유라의 속력이 무엇이든 확인 횟수가 가장 적도록 민혁이가 전략을 짤 때, 최악의 경우의 확인 횟수를 구하여라.

입력

첫째 줄에 테스트 케이스의 수 cc (1≤c≤1001 \le c \le 100)가 주어진다.

이어지는 cc개의 줄에 각 테스트 케이스의 정수 ll, v1v_1, v2v_2, tt, ss가 공백으로 구분되어 주어진다. (1≤l,v1,v2,t,s≤1091 \le l, v_1, v_2, t, s \le 10^9, v1<v2v_1 < v_2)

출력

각 테스트 케이스마다 답을 한 줄에 하나씩 출력한다.

오차 ±t/2\pm t/2 안에서 유라의 속력을 알아낼 방법이 없으면 impossible을 출력한다. 알아낼 수 있으면 최악의 경우에 필요한 확인 횟수의 최솟값을 출력한다. 확인을 한 번도 하지 않아도 되면 0을 출력한다.

예제3

  1. 예제 1

    입력
    3
    1000 1 30 1 1
    60 2 10 2 5
    59 2 10 2 5
    
    예상 출력
    5
    3
    impossible
    
  2. 예제 2

    입력
    5
    1 1 2 1 1
    1000000000 1 1000000000 1000000000 1
    7 3 5 2 1000000000
    1000000000 999999998 999999999 1 1
    5 1 2 1 5
    
    예상 출력
    0
    0
    0
    0
    0
    
  3. 예제 3

    입력
    8
    10 1 3 1 1
    10 1 4 1 1
    10 1 5 1 1
    10 1 6 1 1
    10 1 7 1 1
    10 1 8 1 1
    10 1 9 1 1
    10 1 10 1 1
    
    예상 출력
    1
    2
    2
    3
    impossible
    impossible
    impossible
    impossible