問題
https://atcoder.jp/contests/abc158/tasks/abc158_d
方針
愚直に支持された通りにシミュレーションを行う。
ポイント
Pythonのlistは末尾への要素追加をappendでO(1)のコストで行えますが、
先頭への要素追加insertはO(n)のコストがかかってしまいます。
そこで、両端キューを使います。
Pythonの両端キューは標準ライブラリdequeとして実装されています。
両端キューは要素の追加が、先頭・末尾ともにO(1)のコストで行えます。
メモ
dequeにはreverseメソッドが存在するのですが、
これを利用した場合TLEとなってしまったので、
自前でdequeの方向を管理することにしました。
コード
1 | from collections import deque |
記事情報
- 投稿日:2020年3月7日
- 最終更新日:2020年3月7日