만드는 중입니다

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

Heroes of Might

면접 대비

시간 제한3초메모리 제한512 MB

요약
드래곤이 매 라운드 한 그룹의 농민을 d만큼 공격할 때, 모든 농민 그룹을 없앨 수 있는 드래곤의 최소 체력을 구합니다.
난이도

보통10점 중 5점

유형
그리디, 힙, 시뮬레이션
정답자
아직 제출이 없습니다

문제

최근 헬렌은 좋아하는 게임 "Heroes of Might"를 했다. 그녀는 Rust 드래곤 한 마리만 가진 영웅이었고, 농민을 많이 거느린 다른 영웅에게 공격을 받았다. 상대 영웅은 농민 그룹 nn개를 가지고 있었고, ii번째 그룹에는 aia_i명의 농민이 있었다. 헬렌은 그 전투에서 졌다. 이제 그렇게 많은 농민 군대를 이기려면 Rust 드래곤의 체력이 얼마여야 하는지 알고 싶다.

전투는 다음과 같이 진행된다. 시작할 때 드래곤의 체력은 hdh_d이고, 농민 한 명의 체력은 hph_p이다. 따라서 ii번째 그룹의 전체 체력은 시작 시점에 H=hp⋅aiH = h_p \cdot a_i이다. 전투는 여러 라운드로 이루어지며, 각 라운드에서 다음 두 가지가 일어난다.

  • 먼저 드래곤이 농민 그룹 하나를 골라 공격한다. 그 그룹의 체력은 드래곤의 피해량 dd만큼 줄어든다. 체력이 0 이하가 된 그룹은 파괴되어 게임에서 제외된다.
  • 다음으로 남아 있는 농민 그룹들이 각각 드래곤을 공격한다. 현재 전체 체력이 HH인 그룹에는 ⌈Hhp⌉\lceil\frac{H}{h_p}\rceil명의 농민이 살아 있고, 각 농민이 드래곤의 체력을 1씩 줄인다.

드래곤의 체력이 어느 순간이든 0 이하가 되면 드래곤은 죽고 헬렌은 진다. 모든 농민 그룹이 파괴되면 헬렌이 이긴다.

헬렌이 매 턴 최적으로 공격 대상을 고를 때, 헬렌이 이길 수 있는 가장 작은 hdh_d를 구하라.

입력

첫 줄에 테스트 케이스의 개수 tt (1≤t≤10001 \le t \le 1000)가 주어진다.

각 테스트 케이스는 두 줄로 이루어진다. 첫 줄에는 농민 그룹의 개수 nn (1≤n≤10001 \le n \le 1000), 드래곤의 피해량 dd (1≤d≤1091 \le d \le 10^9), 농민 한 명의 체력 hph_p (1≤hp≤1091 \le h_p \le 10^9)가 주어진다. 둘째 줄에는 각 그룹의 농민 수 aia_i (1≤ai≤1091 \le a_i \le 10^9, hp⋅∑ai≤109h_p \cdot \sum a_i \le 10^9) nn개가 주어진다.

모든 테스트 케이스에 걸친 nn의 합은 1000을 넘지 않는다.

출력

각 테스트 케이스마다 헬렌이 이기기 위해 드래곤이 가져야 하는 최소 체력 hdh_d를 한 줄에 출력한다. 농민이 드래곤에게 피해를 한 번도 주지 않는 경우에도 드래곤의 체력은 양수여야 하므로, 그때는 1을 출력한다.

힌트

세 번째 테스트 케이스에서 헬렌의 최적 전략은 다음과 같은 전투로 이어진다. 시작할 때 드래곤의 체력은 hd=26h_d=26이고, 농민 그룹 두 개의 체력은 H1=4⋅10H_1=4\cdot10, H2=5⋅10H_2=5\cdot10이다. 괄호 안에는 ⌈Hhp⌉\lceil\frac{H}{h_p}\rceil의 값을 적어, H1=40(4)H_1=40(4), H2=50(5)H_2=50(5)로 표기한다.

hd=26h_d=26, H1=40(4)H_1=40(4), H2=50(5)H_2=50(5)1라운드: 드래곤이 첫 번째 그룹을 공격해 1515의 피해를 주고, H1=25(3)H_1=25(3)이 된다.
hd=26h_d=26, H1=25(3)H_1=25(3), H2=50(5)H_2=50(5)농민들이 드래곤을 공격해 3+53+5의 피해를 주고, hd=18h_d=18이 된다.
hd=18h_d=18, H1=25(3)H_1=25(3), H2=50(5)H_2=50(5)2라운드: 드래곤이 첫 번째 그룹을 공격해 1515의 피해를 주고, H1=10(1)H_1=10(1)이 된다.
hd=18h_d=18, H1=10(1)H_1=10(1), H2=50(5)H_2=50(5)농민들이 드래곤을 공격해 1+51+5의 피해를 주고, hd=12h_d=12가 된다.
hd=12h_d=12, H1=10(1)H_1=10(1), H2=50(5)H_2=50(5)3라운드: 드래곤이 두 번째 그룹을 공격해 1515의 피해를 주고, H2=35(4)H_2=35(4)가 된다.
hd=12h_d=12, H1=10(1)H_1=10(1), H2=35(4)H_2=35(4)농민들이 드래곤을 공격해 1+41+4의 피해를 주고, hd=7h_d=7이 된다.
hd=7h_d=7, H1=10(1)H_1=10(1), H2=35(4)H_2=35(4)4라운드: 드래곤이 두 번째 그룹을 공격해 1515의 피해를 주고, H2=20(2)H_2=20(2)가 된다.
hd=7h_d=7, H1=10(1)H_1=10(1), H2=20(2)H_2=20(2)농민들이 드래곤을 공격해 1+21+2의 피해를 주고, hd=4h_d=4가 된다.
hd=4h_d=4, H1=10(1)H_1=10(1), H2=20(2)H_2=20(2)5라운드: 드래곤이 두 번째 그룹을 공격해 1515의 피해를 주고, H2=5(1)H_2=5(1)이 된다.
hd=4h_d=4, H1=10(1)H_1=10(1), H2=5(1)H_2=5(1)농민들이 드래곤을 공격해 1+11+1의 피해를 주고, hd=2h_d=2가 된다.
hd=2h_d=2, H1=10(1)H_1=10(1), H2=5(1)H_2=5(1)6라운드: 드래곤이 두 번째 그룹을 공격해 그룹을 파괴하고, 게임에서 제외된다.
hd=2h_d=2, H1=10(1)H_1=10(1)농민들이 드래곤을 공격해 11의 피해를 주고, hd=1h_d=1이 된다.
hd=1h_d=1, H1=10(1)H_1=10(1)7라운드: 드래곤이 첫 번째 그룹을 공격해 그룹을 파괴하고, 게임에서 제외된다.
hd=1h_d=1게임 종료. 드래곤이 아직 살아 있으므로 헬렌이 이긴다.

예제1

  1. 예제 1

    입력
    4
    1 15 10
    4
    1 10 1
    10
    2 15 10
    4 5
    2 11 15
    10 17
    
    예상 출력
    5
    1
    26
    504