만드는 중입니다

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

다리

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

요약
각 쪽에 n명의 노인이 있고 휴식 시간 x, 다리 건너기 시간 t가 주어질 때, 2n명의 노인을 모두 도와 건너고 돌아오는 데 걸리는 최소 시간을 구합니다.
난이도

보통10점 중 6점

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

문제

날씨가 맑고 경치가 좋은 날, 당신은 산책하러 공원에 왔다. 다리 근처에 나이 든 남자들이 많이 모여 있어서 무슨 일인지 알고 싶어진다.

다리의 양쪽에는 정확히 nn명씩의 노인이 있다. 이들은 모두 다리를 건너 반대편에서 잠시 쉰 뒤, 다시 다리를 건너 원래 자리로 돌아가려 한다. 하지만 너무 고령이라 혼자서는 다리를 건널 수 없다.

당신은 마음속의 선한 뜻에 따라 이 2n2n명의 노인을 돕고 싶다. 처음에 당신은 다리의 한쪽에 있다. 당신이 다리를 건너는 데 tt분이 걸리고, 노인이 쉬는 데 xx분이 걸린다. 다리를 건널 때 노인 한 명을 도울 수 있으며, 이때 추가 시간은 들지 않는다.

시간 관리의 달인인 당신은 2n2n명의 노인을 모두 돕는 데 필요한 최소 시간을 알고 싶다. 이 최소 시간을 계산하는 프로그램을 작성하라.

입력

첫 줄에는 테스트 케이스의 개수를 나타내는 정수 TT (1≤t≤104)(1 \leq t \leq 10^4)가 주어진다.

이어지는 TT개의 줄에는 문제 설명과 같은 의미의 정수 nn, xx, tt (1≤n,x,t≤109)(1 \leq n, x, t \leq 10^9)가 각각 주어진다.

출력

정확히 TT개의 줄을 출력한다. 각 줄에는 해당 테스트 케이스에서 필요한 최소 시간을 나타내는 정수 하나를 출력한다.

힌트

샘플 데이터의 첫 번째 경우에 대한 최적 계획은 아래와 같다. 숫자는 노인을, |는 다리를, x는 당신을 나타낸다.

   Time
     0     x 1 2 | 3 4
     2         2 | 3 4 1 x
     4     x 3 2 | 4 1
     6         3 | 4 1 2 x
     8     x 4 3 | 1 2 x
    10         4 | 1 2 3 x
    12     x 1 4 | 2 3
    14         1 | 2 3 4 x
    16     x 2 1 | 3 4

예제1

  1. 예제 1

    입력
    3
    2 2 2
    3 1 10
    11 45 14
    
    예상 출력
    16
    120
    616