#joi2009yoc. [joi2009yo_c]連鎖
[joi2009yo_c]連鎖
問題
次のようなゲームがある.
あるキャラクターが縦 列に 個並んでいる.これらのキャラクターの色は赤,青,黄のいずれかであり,初期状態で同じ色のキャラクターが つ以上連続して並んでいることはない.プレーヤーは,ある位置のキャラクターを選び他の色に変更することができる.この操作により同じ色のキャラクターが つ以上連続して並ぶとそれらのキャラクターは消滅する.キャラクターが消滅することにより新たに同じ色のキャラクターが つ以上連続して並ぶとそれらのキャラクターも消滅し,同じ色のキャラクターが4つ以上連続して並んでいる箇所がなくなるまでこの連鎖は続く.このゲームの目的は,消滅しないで残っているキャラクター数をなるべく少なくすることである.
例えば,下図の左端の状態で,上から 番目のキャラクターの色を黄色から青に変更すると,青のキャラクターが つ連続するので消滅し,最終的に つのキャラクターが消滅せずに残る.
初期状態における 個のキャラクターの色の並びが与えられたとき, 箇所だけキャラクターの色を変更した場合の,消滅しないで残っているキャラクター数の最小値 を求めるプログラムを作成せよ.
入力
行目はキャラクター数 () だけからなる.続く 行には のいずれか つの整数が書かれており, 行目 () は初期状態における上から 番目のキャラクターの色を表す( は赤を, は青を, は黄を表す).
出力
消滅しないで残っているキャラクター数の最小値 を出力せよ.
入力例 1
12
3
2
1
1
2
3
2
2
2
1
1
3
出力例 1
3
入力例 2
12
3
2
1
1
2
3
2
1
3
2
1
3
出力例 2
12