結果
| 問題 |
No.1095 Smallest Kadomatsu Subsequence
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-11-05 08:08:18 |
| 言語 | Ruby (3.4.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 846 bytes |
| コンパイル時間 | 131 ms |
| コンパイル使用メモリ | 7,296 KB |
| 実行使用メモリ | 39,168 KB |
| 最終ジャッジ日時 | 2024-10-15 16:15:59 |
| 合計ジャッジ時間 | 6,445 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 3 |
| other | WA * 30 |
コンパイルメッセージ
Main.rb:49: warning: assigned but unused variable - res Syntax OK
ソースコード
class SegmentTree
def initialize(arr)
@h = (arr.length - 1).bit_length
@n = 2**@h
@ie = Float::INFINITY
@tree = Array.new(2*@n, @ie)
0.upto(arr.length-1) {|i|
@tree[@n + i] = arr[i]
}
(@n-1).downto(1) {|i|
@tree[i] = [@tree[2 * i], @tree[2 * i + 1]].min
}
end
def set(idx, x)
idx += @n
@tree[idx] = x
while idx > 0 do
idx >>= 1
@tree[idx] = [@tree[2 * idx], @tree[2 * idx + 1]].min
end
end
def query(lt, rt)
lt += @n
rt += @n
vl = vr = @ie
while rt - lt > 0 do
if lt & 1 != 0 then
vl = [vl, @tree[lt]].min
lt += 1
end
if rt & 1 != 0 then
rt -= 1
vr = [@tree[rt], vr].min
end
lt >>= 1
rt >>= 1
end
[vl, vr].min
end
end
INF = Float::INFINITY
N = gets.to_i
A = gets.split(" ").map{|s| s.to_i}
S = A.map.with_index{|x, i| [x, i]}.sort_by!{|x| x[0]}
res = INF