시작 크기 A에서 다른 입자를 정렬한 뒤 작은 입자를 흡수하면서 도우미 입자를 추가하거나 막힌 입자를 삭제해 최소 연산으로 정리합니다.
보통5그리디정렬면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB아민은 Hemisphere Games가 만든 물리 퍼즐 게임 Osmos를 하고 있다. 아민이 조종하는 것은 모트라고 부르는 작은 입자로, 돌아다니면서 자기보다 작은 모트를 흡수한다.
아민의 모트가 더 작은 모트를 흡수하면 흡수한 모트의 크기만큼 커진다. 커지고 나면 아까는 흡수하지 못하던 모트도 흡수한다. 예를 들어 아민의 모트 크기가 10이고 다른 모트의 크기가 9, 13, 19라고 하자. 처음에는 크기 9인 모트만 흡수할 수 있고, 흡수하고 나면 크기가 19가 된다. 그다음에 크기 13인 모트를 흡수해 크기가 32가 되고, 그제야 마지막 모트를 흡수한다.
흡수는 상대 모트가 자기보다 엄격하게 작을 때만 가능하다. 크기가 같은 모트는 흡수하지 못한다.
모트를 배치하는 프로그램은 당신이 맡고 있다. 프로그램이 만든 배치로는 아민의 모트가 다른 모트를 전부 흡수하지 못할 수도 있다. 당신은 두 가지 연산을 순서와 횟수에 상관없이 수행할 수 있다. 크기가 양의 정수인 모트를 하나 추가하거나, 이미 있는 모트 하나를 없앤다. 추가 한 번과 제거 한 번이 각각 연산 한 번이다. 아민의 모트가 다른 모트를 모두 흡수할 수 있게 만드는 최소 연산 횟수를 구하라.
예를 들어 아민의 모트 크기가 10이고 다른 모트의 크기가 9, 20, 25, 100이면 지금 상태로는 전부 흡수하지 못한다. 크기 3인 모트를 추가하고 크기 100인 모트를 없애면 연산 두 번으로 해결되고, 연산 한 번으로는 안 된다.
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 두 줄이다. 첫째 줄에 아민의 모트 크기 A와 다른 모트의 개수 N이 주어진다. 둘째 줄에 다른 모트 N개의 크기가 주어진다. 모든 크기는 정수이다.
제한
각 테스트 케이스마다 Case #x: y 형식으로 한 줄씩 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 게임을 풀 수 있게 만드는 최소 연산 횟수이다.
입력에 주어지는 모트의 크기는 100을 넘지 않지만, 아민의 모트는 흡수하면서 그 한계보다 커진다.
추가한 모트도 게임에 남는 모트이므로 마지막에는 그것까지 흡수해야 한다.
Osmos는 Hemisphere Games가 만든 게임이다. 이 문제는 Hemisphere Games와 아무 관련이 없다.