CODE FESTIVAL 2015 予選B D - マスと駒と色塗り

※このエントリは競プロで圧倒的成長 Advent Calendar 2015の2日目のエントリです.

グリニッジ時間に生きてるので,2日目に間に合ってます.

残念ながら解けず,CODE THANKS FESTIVAL行きにされてしまったCODE FESTIVAL 2015予選Bの最後の問題.
本番時,部分点解は思いついたがコードに落とせずという感じだったので,解説を見てもコードに落とせず,ほぼ以下のエントリを参考にしながらの実装となってしまった.
CODE FESTIVAL 2015 予選B : Python練習編

以下,箇条書きの解法まとめ

  • 黒く塗ってあるマスを(右端,左端)のsetを使って管理する.
  • lower_boundを使って黒マスの右端を高速に検索
  • 必要に応じて区間を切ったり貼ったりする

細かい話はコメントに大体書いてます.

https://gist.github.com/tkw-tech/953e21d55cd6c3a87d21