結果
| 問題 |
No.3017 交互浴
|
| コンテスト | |
| ユーザー |
tomerun
|
| 提出日時 | 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")
tomerun