この記事を書き始めたのはアピールの後だから具体的な時間なんも知らん!
(追記:UpSolveのときに見れたけどめんどいから書き足さん!)
まあ
まあセグ木でやるだけ
見た目が怖いけどまあ始点が関係なくて、終点見れば左端ごとに右端の最小値がわかる。
しばらくすると無視するのを選んだら伸ばすのは貪欲でいいことがわかって、長さ同じのは生まれないからbit列で管理することを思いついた。
bit列の中で下位互換を持たないことを思いついて、計算量が
というわけで定数倍高速化するが、なぜか最後の小課題は全部通っているのに最後から2番目の小課題の中の108ケース目だけ通らない。時間で打ち切って、答えが21以下なので1/21で当たる宝くじを投げ続けると通った。こんなのが100点でほんとすみません…
(追記:MtSakaさんにこの方針の満点コードを見せてもらったので、重複削除を2重ループの中でやってたのをuniqueにすると通った、uniqueで要素数が減る恩恵の方がでかいからそれはそうか)
木が解けそうな気がしたが、考えれば考えるほど嘘っぽいので棄却。
小課題1と2は自明で、3も一番手前の始点を見て管理するとまともな解法が生えたので投げたら通った。4も3をかなり応用すれば解けそうなので実装するが、この時点ですでに55分とかだった。当然間に合わずに終了し、その30秒後くらいに提出できる状態になってしまった。しかもあっていた。
というわけで100-100-100-100?-25。D通すのが再現性なさすぎるのでかなりあれだがまあアピールもなく確定したのでセーフということで…
あまり誇れないが銀賞っぽい?ぷらにゃさん強すぎる