atcoder#ABC271H. [ABC271Ex] General General

[ABC271Ex] General General

配点 : 600600

問題文

TT 個のテストケースについて以下の問題を解いてください。

xyxy 座標平面上の原点 (0,0)(0,0) に駒が置かれています。あなたは次の操作を 00 回以上何度でも行うことが出来ます。

  • 1i81 \leq i \leq 8 かつ si=s_i= 1 を満たす整数 ii を選ぶ。現在駒が置かれている座標を (x,y)(x,y) とした時、- i=1i=1 ならば駒を (x+1,y)(x+1,y) に移動させる。
    • i=2i=2 ならば駒を (x+1,y+1)(x+1,y+1) に移動させる。
    • i=3i=3 ならば駒を (x,y+1)(x,y+1) に移動させる。
    • i=4i=4 ならば駒を (x1,y+1)(x-1,y+1) に移動させる。
    • i=5i=5 ならば駒を (x1,y)(x-1,y) に移動させる。
    • i=6i=6 ならば駒を (x1,y1)(x-1,y-1) に移動させる。
    • i=7i=7 ならば駒を (x,y1)(x,y-1) に移動させる。
    • i=8i=8 ならば駒を (x+1,y1)(x+1,y-1) に移動させる。
  • i=1i=1 ならば駒を (x+1,y)(x+1,y) に移動させる。
  • i=2i=2 ならば駒を (x+1,y+1)(x+1,y+1) に移動させる。
  • i=3i=3 ならば駒を (x,y+1)(x,y+1) に移動させる。
  • i=4i=4 ならば駒を (x1,y+1)(x-1,y+1) に移動させる。
  • i=5i=5 ならば駒を (x1,y)(x-1,y) に移動させる。
  • i=6i=6 ならば駒を (x1,y1)(x-1,y-1) に移動させる。
  • i=7i=7 ならば駒を (x,y1)(x,y-1) に移動させる。
  • i=8i=8 ならば駒を (x+1,y1)(x+1,y-1) に移動させる。

あなたの目的は駒を (A,B)(A,B) に移動させることです。 目的を達成するために必要な操作回数の最小値を求めてください。ただし、目的を達成することが不可能な場合は代わりに -1 を出力してください。

制約

  • 1T1041 \leq T \leq 10^4
  • 109A,B109-10^9 \leq A,B \leq 10^9
  • sis_i0 または 1
  • T,A,BT,A,B は整数

入力

入力は以下の形式で標準入力から与えられる。

TT

case1\mathrm{case}_1

case2\mathrm{case}_2

\vdots

caseT\mathrm{case}_T

ただし、casei\mathrm{case}_iii 番目のテストケースを表す。

各テストケースは以下の形式で与えられる。

AA BB s1s2s3s4s5s6s7s8s_1 s_2 s_3 s_4 s_5 s_6 s_7 s_8

出力

全体で TT 行出力せよ。 ii 行目には ii 番目のテストケースに対する答えを出力せよ。

7
5 3 10101010
5 3 01010101
5 3 11111111
5 3 00000000
0 0 11111111
0 1 10001111
-1000000000 1000000000 10010011
8
5
5
-1
0
-1
1000000000