아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

아빠의 카드 마술

시간 제한1초메모리 제한256 MB

요약
N장 중 K장이 앞면인 상태에서 초기 배치와 관계없이 두 더미의 앞면 수가 같아지게 하는 최소 연산 횟수를 구합니다.
난이도

어려움10점 중 8점

유형
수학, 조합론
정답자
아직 제출이 없습니다

문제

카드 마술을 워낙 자주 보여 주는 바람에 가족이 지쳤다. 이걸 끝내려고 아빠는 네가 절대 못 할 거라고 생각하는 마술 하나를 골랐다.

아빠는 네 눈을 가리고 카드 NN장이 든 덱을 건넨다. 그중 정확히 KK장이 앞면이라고 알려 주지만, 어느 카드가 앞면인지는 알려 주지 않는다. 두 번째 덱은 처음에 비어 있다.

목표는 이렇다. 연산을 모두 마친 뒤 두 덱의 앞면 카드 수가 같아야 한다. 그 수가 KK일 필요는 없다. 눈을 가려서 배치를 볼 수 없으니, 앞면 카드가 처음에 어떤 순서로 놓여 있든 같은 연산 순서로 성공해야 한다.

다음 두 연산을 순서에 상관없이 원하는 횟수만큼 수행할 수 있다.

  1. 한 덱에서 다른 덱으로 카드 한 장을 옮긴다.
  2. 두 덱 중 어느 쪽이든 카드 한 장을 뒤집는다. 앞면이던 카드는 뒷면이 되고, 뒷면이던 카드는 앞면이 된다.

아빠를 놀라게 하려고 도전을 받아들였고, 가장 짧은 연산 순서를 찾기로 했다. 프로그램을 짜서 그 길이를 구하라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어지는 TT개의 줄에 각각 두 정수 NN과 KK가 공백으로 구분되어 주어진다.

  • 1≤T≤201 \le T \le 20
  • 1≤K≤N≤10001 \le K \le N \le 1000

출력

각 테스트 케이스마다 목표를 이루는 데 필요한 최소 연산 횟수를 한 줄에 출력한다. 목표를 이룰 수 없으면 대신 −1-1을 출력한다.

예제3

  1. 예제 1

    입력
    3
    2 1
    3 2
    10 3
    
    예상 출력
    2
    3
    6
    
  2. 예제 2

    입력
    1
    1 1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    6
    2 2
    3 3
    4 4
    5 5
    6 6
    7 7
    
    예상 출력
    1
    2
    2
    3
    3
    4