Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 295

4完2WA。

各問題

A - Probably English

5つの単語を配列に入れてループを回してチェックするのが効率が良いでしょう。

B - Bombs

各爆弾がどこまでの範囲をカバーするのかをチェックしますが、爆弾の座標と、盤面のすべての座標のマンハッタン距離を全探索すればよいです。

C - Socks

各色を map で管理して、それぞれの色の個数 / 2 を足したものが答えです。

D - Three Days Ago

嬉しい列はすべての数字が偶数個含まれていることが条件となります。

各数字について累積和をとっていき、それを mod 2 で管理します。

入力例1だと

0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

となります。

で、これが一致する区間がすべての数字が偶数となる区間なので、これを数え上げていけばよいです。

数え方はそれぞれの個数を集計して 個数 + (個数 - 1) / 2 をしていけばよいです。

この例だと 0 0 0 0 0 0 0 0 0 0 が 3つあるので 3 * 2 / 20 0 1 0 0 0 0 0 0 0 が 2つあるので 2 * 1 / 2 で、合わせて4となります。

まとめ

D問題、結構頻出の典型のやつだったのに、残り5分まで気づけず、慌てて実装したらデバッグプリント残したまま提出してしまい、結局通したのが残り1分という...。まあ通せただけましか。