SRM393

250

シミュレーション. 過半数の判定のところで>=を>とタイプミスしたせいで再提出.

500

まず与えられたpatternから動いている部分を検出する.次に,patternを含みかつ検出した動いている部分に対して矛盾しないようなsymbolを列挙する,ここでsymbol取れなかったら矛盾が生じている.列挙したsymbolの共通部分でpatternが含まないようなものに関してはそこは壊れていると判定していい.
なぜかjavaのBitSetを使おうと思ってしまって結構はまる.b1.or(b2)の挙動がb1|b2を返すのではなくてb1をb1|b2に変更するというのはBigIntegerとかの挙動が違っていて結構間違えやすいのではと思った.