아빠의 카드 마술
시간 제한1초메모리 제한256 MB
N장 중 K장이 앞면인 상태에서 초기 배치와 관계없이 두 더미의 앞면 수가 같아지게 하는 최소 연산 횟수를 구합니다.
문제
카드 마술을 워낙 자주 보여 주는 바람에 가족이 지쳤다. 이걸 끝내려고 아빠는 네가 절대 못 할 거라고 생각하는 마술 하나를 골랐다.
아빠는 네 눈을 가리고 카드 장이 든 덱을 건넨다. 그중 정확히 장이 앞면이라고 알려 주지만, 어느 카드가 앞면인지는 알려 주지 않는다. 두 번째 덱은 처음에 비어 있다.
목표는 이렇다. 연산을 모두 마친 뒤 두 덱의 앞면 카드 수가 같아야 한다. 그 수가 일 필요는 없다. 눈을 가려서 배치를 볼 수 없으니, 앞면 카드가 처음에 어떤 순서로 놓여 있든 같은 연산 순서로 성공해야 한다.
다음 두 연산을 순서에 상관없이 원하는 횟수만큼 수행할 수 있다.
- 한 덱에서 다른 덱으로 카드 한 장을 옮긴다.
- 두 덱 중 어느 쪽이든 카드 한 장을 뒤집는다. 앞면이던 카드는 뒷면이 되고, 뒷면이던 카드는 앞면이 된다.
아빠를 놀라게 하려고 도전을 받아들였고, 가장 짧은 연산 순서를 찾기로 했다. 프로그램을 짜서 그 길이를 구하라.
입력
첫 줄에 테스트 케이스의 수 가 주어진다. 이어지는 개의 줄에 각각 두 정수 과 가 공백으로 구분되어 주어진다.
출력
각 테스트 케이스마다 목표를 이루는 데 필요한 최소 연산 횟수를 한 줄에 출력한다. 목표를 이룰 수 없으면 대신 을 출력한다.