結果
問題 |
No.157 2つの空洞
|
ユーザー |
|
提出日時 | 2016-03-04 20:16:35 |
言語 | Ruby (3.4.1) |
結果 |
WA
|
実行時間 | - |
コード長 | 808 bytes |
コンパイル時間 | 104 ms |
コンパイル使用メモリ | 7,552 KB |
実行使用メモリ | 12,416 KB |
最終ジャッジ日時 | 2024-09-24 14:10:47 |
合計ジャッジ時間 | 2,618 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 WA * 1 |
other | AC * 6 WA * 10 |
コンパイルメッセージ
Syntax OK
ソースコード
@w,@h = gets.split.map(&:to_i) @data = STDIN.map(&:chomp).join('').split('') def sol now,d,f,memo tmp = 0 if @data[now] == '.' if f == 1 return 0 end else tmp = f = 1 end ans = 10000 memo[now] = true if d != 'S' && now < @w && !memo[now - @w] ans = [ans,sol(now - @w,'N',f,memo) + tmp].min end if d != 'N' && now / @w != @h - 1 && !memo[now + @w] ans = [ans,sol(now + @w,'S',f,memo) + tmp].min end if d != 'E' && now % @w != 0 && !memo[now - 1] ans = [ans,sol(now - 1,'W',f,memo) + tmp].min end if d != 'W' && now % @w != @w - 1 && !memo[now + 1] ans = [ans,sol(now + 1,'E',f,memo) + tmp].min end return ans end memo = Array.new(@w * @h,false) p sol(@data.index('.'),'',0,memo)