問題
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日