atcoder#ARC156A. [ARC156A] Non-Adjacent Flip
[ARC156A] Non-Adjacent Flip
配点 : 点
問題文
から の番号がついた、表裏が区別できるコインが 枚あります。コインの表裏は長さ の文字列 で表され、 の 番目の文字が 1
のときコイン は表を向いており、0
のときコイン は裏を向いています。
あなたは、以下の操作を 回以上好きな回数繰り返すことができます。
- かつ を満たす整数組 を選ぶ。コイン とコイン を裏返す。
操作によって 枚のコイン全てを裏向きにできるか判定し、可能な場合必要な操作の回数の最小値を求めてください。
個のテストケースが与えられるので、それぞれについて答えてください。
制約
- は
0
,1
からなる長さ の文字列 - 入力される数値は全て整数
- つの入力に含まれるテストケースについて、 の総和は 以下
入力
入力は以下の形式で標準入力から与えられる。
各ケースは以下の形式で与えられる。
出力
行出力せよ。 行目には、 番目のテストケースについて、操作によりコインを全て裏向きにできる場合は必要な操作回数の最小値を、できない場合は -1
を出力せよ。
5
3
101
6
101101
5
11111
6
000000
30
111011100110101100101000000111
1
2
-1
0
8
番目のテストケースについては、 として操作を 回行うと、 回の操作でコインを全て裏向きにできます。
番目のテストケースについては、 として操作を 回行い、 として操作を 回行うと、 回の操作でコインを全て裏向きにできます。
番目のテストケースについては、コインを全て裏向きにできないことが証明できるので、-1
を出力してください。
番目のテストケースについては、コインは既に全て裏向きなので、操作は必要ありません。