뺄셈 단계마다 q원, 나머지 연산마다 p원을 내어 순서쌍 (a, b)의 한 값이 0이 될 때까지 줄일 때 가장 적은 총비용을 구합니다.
보통7그리디정수론수학아직 제출이 없습니다시간 제한1초메모리 제한32 MB두 자연수의 최대공약수를 구하는 일은 중요하다. 이 문제에서는 최대공약수를 더 적은 비용으로 구하려고 한다.
석환이와 상수는 자연수 가공업자다. 구매자가 자연수 순서쌍 하나를 맡기면 그 순서쌍을 적당히 가공해서 돌려준다.
예를 들면 이렇다.
승현이는 자연수 순서쌍 (a,b)를 가지고 있다. 수학에 밝은 승현이는 석환이와 상수에게 순서를 잘 정해 맡기면 결국 ab=0인 순서쌍에 도달한다는 것을 알아냈다. 그때 a+b는 처음 두 자연수의 최대공약수다.
이렇게 최대공약수를 구하던 승현이는, a와 b와 p와 q가 정해져 있을 때 ab=0을 만드는 데 드는 최소 비용이 궁금해졌다. 승현이는 수를 직접 바꿀 수 없고 가공만 의뢰할 수 있다. 승현이를 대신해 그 최소 비용을 구하라.
첫 줄에 테스트 케이스의 수 T가 주어진다.
다음 T개 줄에 테스트 케이스가 하나씩 주어진다. 그중 i (1≤i≤T)번째 줄에는 네 자연수 ai, bi, pi, qi가 공백을 사이에 두고 주어진다.
각 테스트 케이스마다 한 줄에 하나씩, 최소 비용을 원 단위로 출력한다. 승현이는 순서쌍 (ai,bi)에서 시작하고, 석환이에게 한 번 맡기는 데 pi원, 상수에게 한 번 맡기는 데 qi원을 쓰며, 가공 의뢰만으로 aibi=0을 만들어야 한다.
(a,b,p,q)가 (7,3,1,1), (8,3,1,1), (7,3,3,2)일 때는 석환이에게만 맡기는 것이 최선이다.
(55,34,10,9)일 때는 두 사람 모두에게 맡겨야 한다. 아래 경로에서 --q-->는 상수의 가공, --p-->는 석환이의 가공이다.
(55, 34) --q--> (21, 34) --q--> (21, 13) --q--> (8, 13) --q--> (8, 5)
(8, 5) --p--> (5, 3) --q--> (2, 3) --q--> (2, 1) --p--> (1, 0)
상수의 가공을 여섯 번, 석환이의 가공을 두 번 써서 비용은 6×9+2×10=74원이다.