結果
| 問題 | 
                            No.127 門松もどき
                             | 
                    
| コンテスト | |
| ユーザー | 
                             | 
                    
| 提出日時 | 2015-01-16 21:34:34 | 
| 言語 | Ruby  (3.4.1)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 1,686 ms / 5,000 ms | 
| コード長 | 331 bytes | 
| コンパイル時間 | 68 ms | 
| コンパイル使用メモリ | 7,424 KB | 
| 実行使用メモリ | 152,960 KB | 
| 最終ジャッジ日時 | 2024-12-23 22:06:30 | 
| 合計ジャッジ時間 | 21,256 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge1 / judge3 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 4 | 
| other | AC * 23 | 
コンパイルメッセージ
Syntax OK
ソースコード
N=gets.to_i
A=gets.split.map(&:to_i)
dpR=(1..N).map{[1]*N}
dpL=(1..N).map{[1]*N}
(1...N).each{|d|
  (0...N-d).each{|l|
    r=l+d
    dpl=dpL[d-1][l]
    dpr=dpR[d-1][l+1]
    dpL[d][l]=A[l]>=A[r]?dpl:[dpl,dpr+1].max
    dpR[d][l]=A[l]<=A[r]?dpr:[dpr,dpl+1].max
  }
}
p ((0...N).map{|i|dpL[N-1-i][i]}+(0...N).map{|i|dpR[i][0]}).max