結果
問題 | No.127 門松もどき |
ユーザー |
|
提出日時 | 2015-01-15 19:54:03 |
言語 | Ruby (3.4.1) |
結果 |
AC
|
実行時間 | 2,765 ms / 5,000 ms |
コード長 | 424 bytes |
コンパイル時間 | 66 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 189,184 KB |
最終ジャッジ日時 | 2024-12-23 21:54:48 |
合計ジャッジ時間 | 28,995 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 23 |
コンパイルメッセージ
Syntax OK
ソースコード
def dfs(d,l,r) Memo[d][l][r]||=( if l==r 1 elsif d==0 if A[l]>=A[r] dfs(0,l,r-1) else [dfs(0,l,r-1),dfs(1,l+1,r)+1].max end else if A[l]<=A[r] dfs(1,l+1,r) else [dfs(1,l+1,r),dfs(0,l,r-1)+1].max end end ) end N=gets.to_i A=gets.split.map(&:to_i) Memo=[0,1].map{(1..N).map{[]}} p (0...N).flat_map{|i|[dfs(0,i,N-1),dfs(1,0,i)]}.max