提出 #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
結果
AC × 2
AC × 39
TLE × 1
セット名 テストケース
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