타워가 가장 가까운 살아 있는 몬스터를 쏘는 동안 막타를 쳐서 얻는 골드를 최대로 만듭니다.
보통6동적 계획법수학아직 제출이 없습니다시간 제한10초메모리 제한512 MB다이애나는 즐겨 하는 게임에서 골드를 최대한 많이 벌고 싶어 한다. 다이애나는 자기 편 타워 가까이에 서 있고, 몬스터 N마리와 마주 보고 있다. 이 상황에서 다이애나와 타워가 번갈아 몬스터를 공격하며, 다이애나가 먼저 공격한다. 자기 차례에 다이애나는 살아 있는 몬스터 하나를 골라 공격할 수 있고, 아무것도 하지 않고 차례를 넘길 수도 있다. 타워는 자기 차례에 타워에서 가장 가까운 살아 있는 몬스터를 공격한다. 죽은 몬스터는 다이애나도 타워도 공격하지 않는다.
다이애나가 공격하면 그 몬스터의 체력이 P만큼 줄고, 타워가 공격하면 Q만큼 준다. 체력이 1 미만으로 떨어진 몬스터는 죽는다. i번 몬스터의 처음 체력은 Hi이다. 다이애나의 공격이 i번 몬스터를 죽이면 다이애나가 골드 Gi를 받고, 타워의 공격이 죽이면 아무것도 받지 못한다. 다이애나가 얻을 수 있는 골드의 최댓값을 구하는 프로그램을 작성하시오.
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 P, Q, N이 공백으로 구분되어 주어진다. 이어지는 N개 줄 가운데 i번째 줄에는 Hi와 Gi가 공백으로 구분되어 주어진다.
몬스터는 타워에서 가까운 순서대로 주어진다. 즉, 타워는 번호가 i보다 작은 몬스터가 모두 죽은 뒤에야 i번 몬스터를 공격한다.
제한
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 다이애나가 얻을 수 있는 골드의 최댓값이다.
예제 가운데 P=20, Q=60인 테스트 케이스에서는 다이애나가 첫 번째 몬스터를 포기하는 편이 낫다. 처음 두 차례에 세 번째 몬스터를 공격해 체력을 80까지 떨어뜨려 두면, 두 번째 몬스터와 세 번째 몬스터의 마지막 타격을 모두 다이애나가 가져간다.