結果
問題 | No.3017 交互浴 |
ユーザー |
![]() |
提出日時 | 2025-01-25 13:42:29 |
言語 | Crystal (1.14.0) |
結果 |
AC
|
実行時間 | 169 ms / 2,000 ms |
コード長 | 422 bytes |
コンパイル時間 | 15,047 ms |
コンパイル使用メモリ | 308,548 KB |
実行使用メモリ | 21,632 KB |
最終ジャッジ日時 | 2025-01-25 22:57:13 |
合計ジャッジ時間 | 24,730 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 55 |
ソースコード
n = read_line.to_i h = read_line.split.map(&.to_i) prev = [{1_000_000_000, -1}] ans = Array.new(n, 0) n.times do |i| while prev[-1][0] < h[i] prev.pop end pi = prev[-1][1] if pi == -1 ans[i] = i % 2 == 0 ? h[i] : 0 elsif (pi % 2 == 0) == (i % 2 == 0) ans[i] = ans[pi] elsif i % 2 == 0 ans[i] = ans[pi] + h[i] else ans[i] = ans[pi] - h[i] end prev << {h[i], i} end puts ans.join("\n")