AT_recruite_2013_pre_a ババ抜き
Description
[problemUrl]: https://atcoder.jp/contests/Recruit-Programing-contest-practice/tasks/recruite_2013_pre_a
特殊なトランプを使ったババ抜きを $ N $ 人で行う。
カードに記載される数字は`1` $ ~ $ `8` までで、ジョーカーは`J`である。
$ N $ 人にカードが与えられるので、ババ抜きが終了するまでに、プレイヤーがカードを引いた総数を出力せよ。
ただしババ抜きが終了しない場合は`-1`と出力せよ。
このババ抜きのルールを以下に記載する。
各プレイヤーは、次のプレイヤーの手札から一番左のカードを引き、自分の手札の一番右に加える。
つまり、プレイヤー $ 1 $ はプレイヤー $ 2 $ からカードを引き、プレイヤー $ N $ はプレイヤー $ 1 $ からカードを引く。
その過程で、引いたカードと同じ数字のカードが自分の手札にあった場合、それらを両方捨てる。
もし、プレイヤーの手札がなくなったら、そのプレイヤーは上がりとし、以後、そのプレイヤーはいないものとして扱う。
例えば、プレイヤー $ 2 $の手札がなくなった場合、プレイヤー $ 1 $ は、プレイヤー $ 3 $ からカードを引く。
ジョーカー以外は偶数枚存在するが、ジョーカーだけはあるプレイヤーに $ 1 $ 枚だけ配られる。
各プレイヤーの手札から、ジョーカー以外のすべてのカードがなくなったらゲーム終了である。
入力の $ 1 $ 行目にはテストケース数 $ T $ を示す。以降、$ T $ 個のテストケースが続く。
各テストケースの $ 1 $ 行目は入力値の個数 $ N $ を示す。
次の行から $ N $ 行にわたって、入力値 $ c_1 $、$ c_2 $、...$ c_N $ が表示される。
$ c_i $ は、プレイヤー $ i $ の初期手札を意味し、文字列である。
たとえば、$ 2746J18 $ は、左から順番に、`2``7``4``6``J``1``8`を所持していることを表す。 各テストケースに対して、ババ抜きが終了するまでにプレイヤーがカードを引いた総数を出力する。
ただしババ抜きが終了しない場合は`-1`と出力せよ。
$ 1≦T≦100 $
$ 3≦N≦5 $
$ c_i $ は`1`$ ~ $`8`に $ J $ を加えた文字列
制約外のサンプル入力がありましたので、一部修正しました。
3
3
16372
2746J18
348
4
1234
1234
1234
1234J
5
13645
643125
147
5137J
3245
15
29
-1
Input Format
N/A
Output Format
N/A