ログインしてください。
提出 #40291192
ソースコード 拡げる
class PQ
def initialize a
@h = *a # min-heap
end
def peek
return *@h[0] if @h[0]
end
def enq v,i
@h << [v,i]
up_heap
end
def deq
return unless @h[0]
@h[0],@h[-1] = @h[-1],@h[0]
v,i = @h.pop
dn_heap if @h[0]
return v,i
end
private
def up_heap
v, = up = @h[i=@h.size-1]
while 0<i
iP = (i-1)/2
break if @h[iP][0]<=v
@h[i],i = @h[iP],iP
end
@h[i] = up
end
def dn_heap
v, = dn = @h[i=0]
z = @h.size
until z <= iC = i+i+1
iC += 1 if iC+1<z && @h[iC+1][0]<@h[iC][0]
break if v<=@h[iC][0]
@h[i],i = @h[iC],iC
end
@h[i] = dn
end
end
N,Q = gets.split.map{_1.to_i}
A = gets.split.map{_1.to_i}
MinA = PQ.new A.each.with_index(1).sort_by(&:first)
A.unshift 0
d = 0
puts Q.times.map{
q,x,y = gets.split.map{_1.to_i}
d += y if q<2
A[x] += q<2 ? y : -y
MinA.enq A[x],x
is = []
while (a,i = MinA.peek)
next MinA.deq if a!=A[i]
break if d<a
is<<i
MinA.deq
A[i] = nil
end
next is[0] ? "#{is.size} #{is.sort*' '}" : '0 '
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | H - Attack Survival |
| ユーザ | ds14050 |
| 言語 | Ruby (2.7.1) |
| 得点 | 0 |
| コード長 | 1061 Byte |
| 結果 | TLE |
| 実行時間 | 2021 ms |
| メモリ | 61996 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 0 / 400 | ||||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 01_example_01.txt, 01_example_02.txt |
| All | 01_example_01.txt, 01_example_02.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 02_random_08.txt, 02_random_09.txt, 02_random_10.txt, 03_max_01.txt, 03_max_02.txt, 03_max_03.txt, 03_max_04.txt, 03_max_05.txt, 03_max_06.txt, 03_max_07.txt, 03_max_08.txt, 03_max_09.txt, 03_max_10.txt, 04_small_01.txt, 04_small_02.txt, 04_small_03.txt, 04_small_04.txt, 04_small_05.txt, 04_small_06.txt, 04_small_07.txt, 04_small_08.txt, 04_small_09.txt, 04_small_10.txt, 05_corner_01.txt, 05_corner_02.txt, 05_corner_03.txt, 05_corner_04.txt, 05_corner_05.txt, 05_corner_06.txt, 05_corner_07.txt, 05_corner_08.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 01_example_01.txt | AC | 55 ms | 14152 KiB |
| 01_example_02.txt | AC | 59 ms | 14148 KiB |
| 02_random_01.txt | AC | 977 ms | 47500 KiB |
| 02_random_02.txt | AC | 633 ms | 26860 KiB |
| 02_random_03.txt | AC | 447 ms | 44164 KiB |
| 02_random_04.txt | AC | 113 ms | 17808 KiB |
| 02_random_05.txt | AC | 737 ms | 45984 KiB |
| 02_random_06.txt | AC | 787 ms | 40004 KiB |
| 02_random_07.txt | AC | 928 ms | 50636 KiB |
| 02_random_08.txt | AC | 449 ms | 49172 KiB |
| 02_random_09.txt | AC | 1682 ms | 42596 KiB |
| 02_random_10.txt | AC | 568 ms | 26512 KiB |
| 03_max_01.txt | AC | 1969 ms | 51940 KiB |
| 03_max_02.txt | AC | 1991 ms | 51820 KiB |
| 03_max_03.txt | TLE | 2021 ms | 51308 KiB |
| 03_max_04.txt | AC | 1988 ms | 51340 KiB |
| 03_max_05.txt | AC | 1996 ms | 51320 KiB |
| 03_max_06.txt | AC | 1961 ms | 51904 KiB |
| 03_max_07.txt | AC | 305 ms | 53248 KiB |
| 03_max_08.txt | AC | 311 ms | 53340 KiB |
| 03_max_09.txt | AC | 689 ms | 61896 KiB |
| 03_max_10.txt | AC | 671 ms | 61836 KiB |
| 04_small_01.txt | AC | 860 ms | 27096 KiB |
| 04_small_02.txt | AC | 929 ms | 31956 KiB |
| 04_small_03.txt | AC | 574 ms | 23944 KiB |
| 04_small_04.txt | AC | 679 ms | 27024 KiB |
| 04_small_05.txt | AC | 852 ms | 26848 KiB |
| 04_small_06.txt | AC | 956 ms | 27712 KiB |
| 04_small_07.txt | AC | 727 ms | 39804 KiB |
| 04_small_08.txt | AC | 829 ms | 35432 KiB |
| 04_small_09.txt | AC | 820 ms | 31212 KiB |
| 04_small_10.txt | AC | 782 ms | 29880 KiB |
| 05_corner_01.txt | AC | 549 ms | 61800 KiB |
| 05_corner_02.txt | AC | 574 ms | 61696 KiB |
| 05_corner_03.txt | AC | 1278 ms | 50752 KiB |
| 05_corner_04.txt | AC | 1297 ms | 50692 KiB |
| 05_corner_05.txt | AC | 616 ms | 61996 KiB |
| 05_corner_06.txt | AC | 627 ms | 61820 KiB |
| 05_corner_07.txt | AC | 305 ms | 54120 KiB |
| 05_corner_08.txt | AC | 308 ms | 53396 KiB |