008 - 消える数列、消えない数列
時間制限 1 秒 / メモリ制限 256 MB / 得点 14 / x 0 /
ただお君は頭の体操をするために、数列を使ったゲームをしています。このゲームでは、はじめに、1から9までの数字がランダムに並んだ列が与えられます。ただお君は、数列からその一部分を消していきます。ルールは、以下の通りです。
- 数列から、同じ数字が2つ以上並んでいる部分を適当に選ぶ。その部分を含み、連続して現れている同じ数字をすべて消す。
- 消した部分の右側に数列が残っていた場合は、それを左に詰めて、数列を1つにまとめる。
- 上の2つの操作を繰り返した結果、すべての数字が消えればゲームクリアとなる。
例えば、上の図のような 1,2,3,3,2,2,1,2,2 という数列の場合、
左から数えて、3番目、4番目の3を消すと 1,2,2,2,1,2,2
左から数えて、2番目から4番目の2を消すと 1,1,2,2
左から数えて、1番目と2番目の1を消すと 2,2
左から数えて、1番目と2番目の2を消すと、ゲームクリアとなります。
ただし、どのように数字を消してもクリアできない数列があります。たとえば、1,2,3,3,1,2 や 1,2,3,1,2,3 などの数列です。短い数列であれば、ただお君でもクリアできるかどうかがすぐに分かり、クリアできないと分かれば違う数列にチャレンジできますが、長い数列になるとそう簡単にはいきません。
与えられた数列が上のゲームをクリアできるかどうか判定するプログラムを作成せよ。
入力
入力は以下の形式で与えられる。
N c1 c2 ... cN
1行目の N (1 ≤ N ≤ 100) は、数列の長さを表す整数である。2行目には1つの空白で区切られた N 個の整数 ci (1 ≤ ci ≤ 9) が与えられる。ci は数列の i 番目の数字を示す。
出力
上に示されたルールで数列を消すことができる場合は「yes」、できない場合は「no」を出力する。
入力例 1
8 1 2 3 3 2 1 2 2
出力例 1
yes
入力例 2
7 1 2 2 1 1 3 3
出力例 2
yes
入力例 3
16 9 8 8 7 7 6 5 4 4 5 1 1 2 2 3 3
出力例 3
no
入力例 4
5 1 1 2 2 1
出力例 4
yes