問題文の箇条書きの条件を,上から順に条件 1,条件 2,条件 3,条件 4 と呼ぶことにする.
数列 {an} に対して,ai=1 を満たす項数が x,ai=2 を満たす項数が y,ai=3 を満たす項数が z であるとしよう.このとき条件 1 から (ai,ai+1)=(1,2) となるものは (x−132) 個存在し,一方で条件 3 から (x−132)+321=y なので,y=x+189 を得る.同様にして z=x+108 であり,n=3x+297 である.
次に,残された条件 4 を用いたい.先ほどの議論から,
- (ai,ai+1)=(1,2) となるものがちょうど (x−132) 個
- (ai,ai+1)=(2,3) となるものがちょうど (x−24) 個
ずつ存在することがわかっている.
明らかに min(x−132,x−24)=x−132≥123である.よって x≥255 を得る.
次に x の最大値を考えよう.(ai,ai+1,ai+2)=(1,2,1) となるものの個数を t と置くと,x−132=t+123 である.t≤213 なので,x≤468 である.
あとはそのような数列の構成ができればよいが,1→2→3→2→1 のループを 123 回して,あと必要な回数だけ 1→2→1 の往復,2→3→2 の往復,1→3→1 の往復,1→3→2→1 のループをさせれば,任意の 255≤x≤468 を満たす x に対して,数列 {an} を構成できる.
よって求めるべき値は
x=255∑468(3x+297)=295641