結果
| 問題 |
No.1705 Mode of long array
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-11-30 10:15:29 |
| 言語 | Ruby (3.4.1) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 841 bytes |
| コンパイル時間 | 283 ms |
| コンパイル使用メモリ | 7,552 KB |
| 実行使用メモリ | 114,220 KB |
| 最終ジャッジ日時 | 2024-07-03 03:08:48 |
| 合計ジャッジ時間 | 10,108 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 10 TLE * 1 -- * 40 |
コンパイルメッセージ
Syntax OK
ソースコード
N, M = gets.split(" ").map{|s| s.to_i}
a = gets.split(" ").map{|s| s.to_i}
ary = []
hash = {}
a.each_with_index {|x, i|
hash[i+1] = x
ary << [x, i+1]
}
ary.sort!
Q = gets.to_i
q = []
Q.times {
q << gets.split(" ").map{|s| s.to_i}
}
q.each {|t, x, y|
if t == 1 then
v = hash[x]
hash[x] = v + y
i = ary.bsearch_index{|z| (z <=> [v, x]) >= 0}
ary = ary[0, i] + ary[i+1..-1]
i = ary.bsearch_index{|z| (z <=> [v + y, x]) >= 0}
if i then
ary = ary[0, i] + [[v + y, x]] + ary[i..-1]
else
ary << [v + y, x]
end
elsif t == 2 then
v = hash[x]
hash[x] = v - y
i = ary.bsearch_index{|z| (z <=> [v, x]) >= 0}
ary = ary[0, i] + ary[i+1..-1]
i = ary.bsearch_index{|z| (z <=> [v - y, x]) >= 0}
if i then
ary = ary[0, i] + [[v - y, x]] + ary[i..-1]
else
ary << [v - y, x]
end
else
puts ary[-1][1]
end
}