Submission #32487597


Source Code Expand

class PQ
	def initialize
		@h = [] # min-heap
	end

	def top_c
		return @h[0][0] if @h[0]
	end
 
	def enq c,a
		@h << [c,a]
		up_heap
	end
	def deq
		return unless @h[0]
		@h[0],@h[-1] = @h[-1],@h[0]
		c,a = @h.pop
		dn_heap if @h[0]
		return c,a
	end
 
private
	def up_heap
		c, = up = @h[i=@h.size-1]
		while 0<i
			iP = (i-1)/2
			break if @h[iP][0]<=c
			@h[i],i = @h[iP],iP
		end
		@h[i] = up
	end
	def dn_heap
		c, = 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 c<=@h[iC][0]
			@h[i],i = @h[iC],iC
		end
		@h[i] = dn
	end
end

(N,),*ABC,X = $<.map{|ln| ln.split.map(&:to_i) }
E = Array.new(N+1){[]}
ABC.each{|a,b,c|
	E[a]<<[b,c]
	E[b]<<[a,c]
}

V = [nil]*(N+1)
V[1] = v = 1
W = PQ.new
E[1].each{|b,c| W.enq c,b }
puts X.map{|x,*as|
	while W.top_c&.<= x
		_,a = W.deq
		next if V[a]
		V[a] = v += 1
		as<<a
	end
	while a = as.pop
		E[a].each{|b,c|
			W.enq c,b if ! V[b]
		}
	end
	next v
}

Submission Info

Submission Time
Task G - One Step at a Time
User ds14050
Language Ruby (2.7.1)
Score 6
Code Size 1027 Byte
Status AC
Exec Time 1210 ms
Memory 99364 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 6 / 6
Status
AC × 3
AC × 52
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All extreme_00.txt, extreme_01.txt, extreme_02.txt, extreme_03.txt, handmade_00.txt, handmade_01.txt, path_00.txt, path_01.txt, path_02.txt, path_03.txt, path_04.txt, path_05.txt, path_06.txt, random_00.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, sample_01.txt, sample_02.txt, sample_03.txt, special_00.txt, special_01.txt, special_02.txt, special_03.txt, star_00.txt, star_01.txt, star_02.txt, star_03.txt, treelike_00.txt, treelike_01.txt, treelike_02.txt, treelike_03.txt, treelike_04.txt, treelike_05.txt, treelike_06.txt, treelike_07.txt, treelike_08.txt, treelike_09.txt, treelike_10.txt, treelike_11.txt, treelike_12.txt, treelike_13.txt, treelike_14.txt, treelike_15.txt
Case Name Status Exec Time Memory
extreme_00.txt AC 231 ms 50260 KiB
extreme_01.txt AC 482 ms 67136 KiB
extreme_02.txt AC 1081 ms 75720 KiB
extreme_03.txt AC 1013 ms 73500 KiB
handmade_00.txt AC 57 ms 14312 KiB
handmade_01.txt AC 58 ms 14084 KiB
path_00.txt AC 511 ms 66540 KiB
path_01.txt AC 360 ms 52780 KiB
path_02.txt AC 556 ms 67736 KiB
path_03.txt AC 351 ms 53364 KiB
path_04.txt AC 731 ms 84652 KiB
path_05.txt AC 376 ms 43136 KiB
path_06.txt AC 673 ms 71416 KiB
random_00.txt AC 1120 ms 91404 KiB
random_01.txt AC 1139 ms 91108 KiB
random_02.txt AC 1115 ms 99364 KiB
random_03.txt AC 1114 ms 99164 KiB
random_04.txt AC 715 ms 90088 KiB
random_05.txt AC 694 ms 88312 KiB
random_06.txt AC 587 ms 58192 KiB
random_07.txt AC 929 ms 70928 KiB
random_08.txt AC 251 ms 44276 KiB
random_09.txt AC 855 ms 70248 KiB
random_10.txt AC 577 ms 50300 KiB
random_11.txt AC 259 ms 51964 KiB
sample_01.txt AC 56 ms 14164 KiB
sample_02.txt AC 57 ms 14160 KiB
sample_03.txt AC 59 ms 14176 KiB
special_00.txt AC 1210 ms 86188 KiB
special_01.txt AC 761 ms 94016 KiB
special_02.txt AC 1071 ms 84716 KiB
special_03.txt AC 1106 ms 85952 KiB
star_00.txt AC 387 ms 64936 KiB
star_01.txt AC 1160 ms 87140 KiB
star_02.txt AC 770 ms 56244 KiB
star_03.txt AC 361 ms 45620 KiB
treelike_00.txt AC 1142 ms 90836 KiB
treelike_01.txt AC 1130 ms 91096 KiB
treelike_02.txt AC 619 ms 53060 KiB
treelike_03.txt AC 145 ms 19804 KiB
treelike_04.txt AC 827 ms 88564 KiB
treelike_05.txt AC 711 ms 57488 KiB
treelike_06.txt AC 986 ms 72088 KiB
treelike_07.txt AC 548 ms 57568 KiB
treelike_08.txt AC 601 ms 73392 KiB
treelike_09.txt AC 521 ms 67844 KiB
treelike_10.txt AC 588 ms 54468 KiB
treelike_11.txt AC 939 ms 69484 KiB
treelike_12.txt AC 371 ms 55760 KiB
treelike_13.txt AC 593 ms 73044 KiB
treelike_14.txt AC 803 ms 61100 KiB
treelike_15.txt AC 1025 ms 75392 KiB