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

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

방탄 유리 시험 예산

면접 대비

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

요약
총알값과 유리 교체값을 고려해 최악의 경우에도 파괴 한계 거리를 확정하는 최소 예산을 구합니다.
난이도

보통10점 중 6점

유형
동적 계획법
정답자
아직 제출이 없습니다

문제

사장은 자기 목숨이 위험하다고 여겨 차에 방탄 유리를 달았다. 그런데 이 유리가 정말 방탄인지 의심스럽다. FF 피트 떨어진 곳에서 한 발을 쐈더니 유리는 깨지지 않았지만, 더 가까이에서 쏘면 깨질지도 모른다.

유리에는 알려지지 않은 한계 거리 DD가 있다. DD 피트 이상 떨어진 곳에서 쏜 총알은 유리를 깨뜨리지 못하고, DD 피트보다 가까운 곳에서 쏜 총알은 유리를 깨뜨린다. FF 피트에서 쏜 한 발이 유리를 깨뜨리지 못했으므로 0≤D≤F0 \le D \le F이다. 사장이 알고 싶은 값이 바로 이 DD이다.

시험은 정수 피트 위치에서만 한다. 총알 한 발을 쏘는 비용은 BB이다. 쏜 총알에 유리가 깨지면 그 유리를 새로 마련하는 비용 GG가 더 든다. 더 쏠 필요가 없어도 교체 비용은 똑같이 든다. 깨지지 않은 유리는 그대로 다음 한 발에 쓴다.

F−1F-1 피트에서 00 피트까지 한 피트씩 내려가며 쏘면 깨지는 유리는 많아도 한 장이므로 F×B+GF \times B + G 이하의 비용으로 DD를 알아낼 수 있다. 유리를 더 깨뜨리고 총알 수를 줄이는 쪽이 더 쌀 때도 있다.

어느 위치에서 깨지든 DD를 반드시 알아낼 수 있어야 한다. 최악의 경우까지 감당하는 최소 예산을 구하라.

입력

첫 줄에 시험 구성의 개수 NN이 주어진다. (1≤N≤1001 \le N \le 100)

다음 NN개의 줄에 각각 세 정수 FF, GG, BB가 공백으로 구분되어 주어진다. FF는 유리가 깨지지 않는 것을 확인한 거리 (1≤F≤10001 \le F \le 1000), GG는 유리 한 장의 값 (1≤G≤10001 \le G \le 1000), BB는 총알 한 발의 값 (1≤B≤1001 \le B \le 100)이다.

출력

각 시험 구성마다 Case #n: 을 먼저 출력하고, 이어서 그 구성의 시험에 필요한 최소 예산을 출력한다. nn은 입력에 주어진 순서대로 11부터 세는 구성 번호이다.

예제2

  1. 예제 1

    입력
    4
    100 100 1
    100 10 10
    100 80 10
    750 90 25
    
    예상 출력
    Case #1: 200
    Case #2: 110
    Case #3: 290
    Case #4: 625
    
  2. 예제 2

    입력
    3
    1 1 1
    1 1000 100
    2 5 3
    
    예상 출력
    Case #1: 2
    Case #2: 1100
    Case #3: 11