| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 320 | 120 | 102 | 41.463% |
어느 날 게시판을 둘러보던 피돌이는 추천이 $a$개, 비추천이 $b$개인 글을 발견했다. 피돌이는 추천과 비추천의 수가 같아야 편안해지기 때문에 조작프로그램을 이용해 이를 조작하기로 했다.
조작 프로그램은 $c\ x$와 같은 형식의 명령어를 입력해 사용할 수 있다. $c$는 A 또는 B이고 $x$는 1ドル$이상 2ドル^{30}$미만의 정수이다. 현재의 추천 수와 비추천 수를 각각 $p,ドル $q$라고 하자. 명령어를 입력했을 때 일어나는 일은 다음과 같다.
A인 경우, 추천 수가 $p \oplus x$가 되고 비추천 수가 $q+x$가 된다.B인 경우, 추천 수가 $p + x$가 되고 비추천 수가 $q \oplus x$가 된다.단, 조작된 추천 수와 비추천 수에는 상한이 없다.
조작 프로그램을 이용해 추천 수와 비추천 수를 같게 만들 수 있는지 판별하고, 가능하다면 그 중 명령어를 최소로 입력하는 방법을 찾아보자.
첫째 줄에 테스트 케이스의 개수 $T$가 주어진다. $(1\leq T \leq 10\ 000)$
각 테스트 케이스의 첫째 줄에 추천 수와 비추천 수 $a,ドル $b$가 공백을 두고 주어진다. $(0 \leq a,b < 2^{30}; a \neq b)$
각 테스트 케이스의 첫째 줄에 입력해야 하는 명령어의 최소 개수 $K$를 출력한다. 불가능하다면 -1을 출력한다.
각 테스트 케이스에서 실행이 가능한 경우, 다음 $K$줄에 입력해야 하는 명령어를 $c\ x$ 꼴로 출력한다.
2 3 4 3 5
-1 1 B 1
$\oplus$는 xor연산을 나타낸다.