ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

ABC072 C - Together

問題
提出コード

解法

それぞれの数字の出現回数を配列上でメモします。そして、長さが3の区間の和を順番に見ていき、その和の最大値が答えになります。
長さが3しかないので、3つの数字の和を愚直に足していってもいいのですが、
memo[i] = i-1,i,i+1の個数の和
として解くこともできます。
ある数列の数xがあったときに、memopに+1をしてあげると、memo[i]の最大値を調べれば答えとなります。
いもす法を利用すると、memo[x-1]に+1、memo[x+2]に-1を足してあげ、memo[0]からの累積和をとると、この配列を完成させることができます。