#codefestivalfinale. [code_festival_final_e]常ならずグラフ
[code_festival_final_e]常ならずグラフ
問題文
Tさんは,諸行無常をモットーにいろいろなことに挑戦しています. Tさんはあるコンテストに長期的に参加していますが,そのコンテストにはレーティング機能があり,一度参加する毎にレーティングが変動します.それらの変動はグラフにまとめられています.
今,Tさんは彼のレーティング変動がプロットされたグラフを眺めています.彼はふと,グラフから一部の点を取り除いてそれらを結び,常に上下に変動しているような折れ線グラフ,名付けて「常ならずグラフ」を作りたくなりました. さらに,グラフに含まれる点の数が最も多いものに興味があります.
さて,あなたはTさんのために,彼のレーティング変動がプロットされたグラフから作ることのできる「常ならずグラフ」の中での最大の点の数を求めてあげることにしました.
あなたには,Tさんのあるコンテスト参加後でのレーティングが, 個,時系列で与えられます.その中からいくつかの点を取り除き「常ならずグラフ」を作るとき,ありうる点の最大数を求めなさい.常ならずグラフが作れないときは を出力しなさい.
あるグラフ が「常ならずグラフ」であるとは, が 以上かつ, もしくは が成り立つことを意味します. つまり,含まれる頂点数が 未満のとき,「常ならずグラフ」ではありません.
入力
入力は以下の形式で標準入力から与えられる。
…
- 行目には,Tさんのコンテスト参加回数を表す整数 が与えられる.
- 行目には, Tさんが 番目のコンテストに参加した直後のレーティング が空白切りで与えられる.
出力
与えられたグラフからいくつかの点を取り除き「常ならずグラフ」を作るとき,ありうる点の最大数を求め, 行に出力しなさい.末尾の改行を忘れないこと.
入力例1
4
1 2 5 1
出力例1
3
入力例2
5
1 2 3 4 5
出力例2
0