提出 #26574539


ソースコード 拡げる

def yes!; puts'Yes'; exit end

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

D = [nil]*N
O = [0]*N
Deg = E.map(&:size)
Q = N.times.select{ Deg[_1]==1 }
while a = Q.pop
	((p,),),bs = E[a].partition{|b,| ! D[b] }
	bs.sort_by!{|b,| D[b].size }
	bx,cx = bs.pop
	dx,ox = bx ? [D[bx],O[bx]+cx] : [{0=>0},0]
	until bs.empty?
		b,c = bs.pop
		d,o = D[b],O[b]+c
		yes! if x = X-o-ox and d.any?{|d,| dx[x-d] }
		d.each{|d,|
			d += o-ox
			dx[d] = d
		}
	end
	dx[-ox] = -ox
	D[a] = dx
	O[a] = ox
	yes! if D[a][X-O[a]]
	Q << p if p && 1==Deg[p] -= 1
end

puts'No'

提出情報

提出日時
問題 H - 最短経路
ユーザ ds14050
言語 Ruby (2.7.1)
得点 6
コード長 682 Byte
結果 AC
実行時間 72 ms
メモリ 16256 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 6 / 6
結果
AC × 3
AC × 27
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 02_path_00.txt, 02_path_01.txt, 02_path_02.txt, 02_path_03.txt, 02_path_04.txt, 03_star_00.txt, 03_star_01.txt, 03_star_02.txt, 03_star_03.txt, 03_star_04.txt, 04_path_c_max_00.txt, 04_path_c_max_01.txt, 04_path_c_max_02.txt, 04_path_c_max_03.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 58 ms 14088 KiB
00_sample_01.txt AC 57 ms 14120 KiB
00_sample_02.txt AC 57 ms 14256 KiB
01_random_00.txt AC 68 ms 15980 KiB
01_random_01.txt AC 65 ms 15636 KiB
01_random_02.txt AC 72 ms 15836 KiB
01_random_03.txt AC 68 ms 15712 KiB
01_random_04.txt AC 70 ms 15904 KiB
01_random_05.txt AC 64 ms 15896 KiB
01_random_06.txt AC 68 ms 15816 KiB
01_random_07.txt AC 66 ms 15872 KiB
01_random_08.txt AC 70 ms 15584 KiB
01_random_09.txt AC 69 ms 15876 KiB
02_path_00.txt AC 64 ms 15404 KiB
02_path_01.txt AC 61 ms 14712 KiB
02_path_02.txt AC 66 ms 15448 KiB
02_path_03.txt AC 61 ms 14716 KiB
02_path_04.txt AC 64 ms 14796 KiB
03_star_00.txt AC 66 ms 16256 KiB
03_star_01.txt AC 70 ms 16160 KiB
03_star_02.txt AC 72 ms 16168 KiB
03_star_03.txt AC 65 ms 15856 KiB
03_star_04.txt AC 70 ms 16084 KiB
04_path_c_max_00.txt AC 66 ms 15284 KiB
04_path_c_max_01.txt AC 65 ms 15456 KiB
04_path_c_max_02.txt AC 66 ms 15368 KiB
04_path_c_max_03.txt AC 62 ms 15484 KiB