アルゴリズム忘備録

競技プログラミングとかデータ分析とか

C: pushpush - AtCoder Regular Contest 077

arc077.contest.atcoder.jp

 

数列a[i]が与えられる。このa[i]とある空の別の数列b[j]について、bの末尾にa[i]を加え、bをreverseする、という操作をすべてのa[i]について繰り返す。最後にできる数列を求めよ。

 

毎回Reverseするのではなく、Nが偶数なら最後に一回Reverseすればよい。あとはa[i]の要素を順に末尾、先頭、末尾、先頭と追加していく。O(N)。