만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

에이담 샌드 레어

시간 제한1초메모리 제한1024 MB

요약
각 테스트마다 Yp층에 있는 사람이 0층까지 가는 최소 시간을 구한다. 걸어가거나, Lp층에 있는 엘리베이터를 타거나, 중간 층에서 만나 함께 가는 경우를 따진다.
난이도

보통10점 중 5점

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

문제

당신은 기지에서 모래와 암석을 뚫어 계단과 엘리베이터가 있는 깊은 수직 구덩이를 만들었다. 구덩이는 지하 깊숙이 이어지며, 여러 층에 장비를 두고 가장 깊은 층에는 숙성 중인 치즈, 특히 에이담을 둔다. 당신은 자주 아래층으로 산책을 나가지만, 지상으로 올라갈 때 일부 또는 전부를 엘리베이터로 가는 것이 더 빠른지 걷는 것이 더 빠른지 궁금하다.

당신은 자신과 엘리베이터의 위치와 속도를 알고 있다. 지상 층은 0번이며, 양수는 지상으로부터의 거리로 지하 층을 나타낸다. 화성에는 당신밖에 없으므로 엘리베이터를 사용하는 사람도 당신뿐이다. 또한 당신과 엘리베이터 모두 이동을 시작하고 멈추는 데 거의 시간이 걸리지 않으므로 이는 무시한다. 엘리베이터가 여러 층으로 호출되면, 호출된 순서대로 그 층들로 이동한다. 엘리베이터는 특별하지 않아서, 당신이 타면 임의의 층으로 가라고 명령할 수 있다. 이 경우 이전의 모든 호출이 먼저 처리되어야 한다.

입력

첫 입력 줄에는 테스트 케이스의 수 T (1 ≤ T ≤ 104)가 주어진다. 다음 T개의 줄에는 각각 하나의 테스트 케이스가 주어진다. 각 테스트 케이스는 네 정수 Yp, Lp, Ys, Ls로 이루어지며, 0 ≤ Yp, Lp ≤ 109는 당신과 엘리베이터의 초기 층이고, 0 < Ys, Ls ≤ 106은 당신과 엘리베이터가 한 층을 이동하는 데 걸리는 시간이다.

출력

각 테스트 케이스마다 당신이 초기 층에서 0번 층으로 이동하는 데 걸리는 최소 시간을 한 줄에 하나씩 정수로 출력한다.

힌트

예제 입력 1에는 두 개의 테스트 케이스가 있다. 첫 번째에서는 엘리베이터가 18층 떨어져 있어 기다리느니 0번 층까지 걷는 편이 낫다. 두 번째에서는 가장 빠른 방법의 예로, 엘리베이터를 호출하고 그동안 1층을 걸어 올라간 뒤, 엘리베이터를 지하 9층으로 호출하고 기다렸다가 타고 0번 층으로 가는 방법이 있다.

예제1

  1. 예제 1

    입력
    2
    2 20 10 2
    10 20 10 2
    
    예상 출력
    20
    40