提出 #26249595


ソースコード 拡げる

(D,G),*PCBF = $<.map{|ln|
	p,c = ln.split.map(&:to_i)
	c,b = c/100,$.-1
	next p,c,b,p.fdiv(p*b+c)
}
PCBF.sort_by!(&:last)
S = PCBF.reverse_each.inject([0]){|s,(p,c,b,f)| s<<s[-1]+p*b+c }.reverse
F = lambda{|min,m,g,i|
	next min if min<=m
	next m if g<=0
	next min if S[i]<g
	next min unless (p,c,b,f = PCBF[i])
	next min if (min-m)/f<g
	q = (g-1)/b+1
	min = q<p ? [m+q,min].min : F[min,m+p,g-p*b-c,i+1]
	next F[min,m,g,i+1]
}
p F[1000,0,G,0]

提出情報

提出日時
問題 C - All Green
ユーザ ds14050
言語 Ruby (2.7.1)
得点 300
コード長 460 Byte
結果 AC
実行時間 61 ms
メモリ 14276 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 4
AC × 24
セット名 テストケース
Sample a01, a02, a03, a04
All a01, a02, a03, a04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24
ケース名 結果 実行時間 メモリ
a01 AC 57 ms 14172 KiB
a02 AC 60 ms 14240 KiB
a03 AC 60 ms 14136 KiB
a04 AC 61 ms 14000 KiB
b05 AC 61 ms 14128 KiB
b06 AC 58 ms 14032 KiB
b07 AC 58 ms 14176 KiB
b08 AC 59 ms 14256 KiB
b09 AC 59 ms 14164 KiB
b10 AC 60 ms 14124 KiB
b11 AC 59 ms 14132 KiB
b12 AC 59 ms 14108 KiB
b13 AC 60 ms 14092 KiB
b14 AC 60 ms 14276 KiB
b15 AC 57 ms 14076 KiB
b16 AC 59 ms 13936 KiB
b17 AC 59 ms 13936 KiB
b18 AC 59 ms 14060 KiB
b19 AC 58 ms 13868 KiB
b20 AC 61 ms 14064 KiB
b21 AC 58 ms 14228 KiB
b22 AC 61 ms 13956 KiB
b23 AC 58 ms 14144 KiB
b24 AC 55 ms 14096 KiB