競技プログラミング用 知識集積所
ABC413C - Large Queue
最終更新:
sport_programming
-
view
問題
必要知識
B以下レベルの内容は省略
考え方
問題の通りに整数列を作っていくと、10^14くらいのサイズの数列ができてアウト。
そこで、同じデータが連続することに注目し、ランレングス圧縮(未作成)を行う。
そこで、同じデータが連続することに注目し、ランレングス圧縮(未作成)を行う。
例えば入力例1なら、最初の2つのクエリで
3が2個、5が4個
という形でデータをもっておき、3つ目のクエリでは
3が2個、5が1個
を取り出して、数列には
5が3個
が残る……というようにデータを持つ。
vector(未作成)は前からの出し入れが苦手、queue(未作成)は余ったやつを先頭に戻せない。
よって、コンテナにはdeque(未作成)を使う必要がある。
(queue(未作成)でも、取り出さずに値の変更をすれば不可能ではないが……)
よって、コンテナにはdeque(未作成)を使う必要がある。
(queue(未作成)でも、取り出さずに値の変更をすれば不可能ではないが……)
解答例
注意点
解答にはlong long型を用いる。
最終的な値はint型をはみ出る場合がある。